Home » CEEFAX disks » telesoftware2.adl » ATS/T\ATS06

ATS/T\ATS06

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » CEEFAX disks » telesoftware2.adl
Filename: ATS/T\ATS06
Read OK:
File size: 6665 bytes
Load address: 0000
Exec address: FFFFFFFF
File contents



Interactive programming                                  J.J.Brayshaw 1987




Transmission of computer software via teletext is not quite the simple
process it may at first seem. In practice, many factors have to be
considered in order to broadcast the full range of codes included in
telesoftware files. This module looks at some of the problems, and offers
practical routines for downloading any correctly formatted files from any
teletext channel.

__________________________________________________________________________

Teletext Interactive Porgramming:

Advanced Teletext System. 6

(c) J.J.Brayshaw 1987

Telesoftware files:


Computer software designed for use with an 8-bit computer consists
entirely of codes in the range &00 to &FF, or 0 to 255. Transmission of
software via CEEFAX is, therefore, theoretically easy. Just replace the
characters that make up a displayable page with the codes, in the correct
sequence, from a computer program.

Unfortunately, there are a lot of problems in doing this. The CEEFAX
system, as with any teletext system, is designed to work in 7-bit mode.
This means that only 128 of the required 256 codes can be broadcast. The
8th (top) bit of each 8-bit sequence is used for a parity check.

The parity check is necessary not just to check the integrity of the
received data, but also to check and correct the receiver's internal clock
from which it determines when each bit starts and ends. Using "odd parity"
ensures that there is a change of state from zero to one or vice versa (at
individual bit level) in every single code. The clock is designed to reset
itself each time a change of state occurs. In this way, it only needs to
be accurate enough to receive a single byte before a reset is made.

This means that only the lower 7 bits of each code received form the data.
The top bit is either set or clear, whichever will ensure an odd quantity
of bits set in the whole 8-bit byte. The theory is that a decoder should
count the number of bits that are set to one in each byte received. If
this is an even quantity, the byte is in error and the decoder can take
appropriate action. In practice, however, there is little remedial action
a decoder can take when a "parity error" occurs, and consequently this
check is often not carried out. Odd parity transmission is still useful,
however, to ensure clock timing accuracy.






                                  Page 1








Interactive programming                                  J.J.Brayshaw 1987




So teletext transmissions are limited to a maximum of 128 different codes.
This quantity is further reduced by CEEFAX protocols which make it
difficult to broadcast certain codes without adverse effects. For example,
character code 13 will tell a teletext set that double-height text
follows. In this case, the following row should not be broadcast, as it
will be exactly the same as the preceding row and therefore can be
generated by the teletext set, thus saving transmission time. This ensures
a correct double-height display on a CEEFAX page, but will cause severe
problems in a telesoftware file, as one of the packets in the transmitted
sequence will be missing. Some other codes also cause problems at the
transmission or reception stage, and are best avoided.

In order to cater for the broadcast of these untransmittable codes, a
protocol for telesoftware transmissions had to be devised. This was agreed
at the appropriate International Standards committee several years ago,
and has not been changed in any way since. All the telesoftware broadcast
by the BBC since the start of public transmissions in 1983 has been in
accordance with this protocol.

Known as RTF (Redefinable Telesoftware Format), the protocol allows any
one of the 256 possible codes to be transmitted. The file is split into
teletext packets (or rows) for transmission. These are given the standard
CEEFAX protocol which includes a magazine address, a row address, and
odd-parity coding. The decoder must sort the packets into correct order,
then strip the row and magazine addresses from the incoming data. The
length of the page has been extended by two rows to allow for a full 1k of
data to be sent with each CEEFAX page. The telesoftware file can occupy
the centre 24 bytes of packet zero, plus 40 bytes from each of packets 1
to 25 inclusive. This gives 1024 character positions, which is exactly 1k
of data.

The data received is queued in an input buffer. Each byte is taken in turn
and decoded using a 'look-up' table. These look-up tables apply to every
single byte received, and so what appears in the input stream is not
necessarily what is sent to the output file.

Each byte is looked up in one of two tables, and can decode to a single
byte, a string of bytes, or a command. In the first instance, the single
decoded byte is sent to the output file. In the second case a single input
byte can decode to a string of bytes (up to 256 of them!), and each one is
sent to the output file. In this way, a single transmitted byte can
represent several bytes of the final file. In the third instance, a
predefined routine can be engaged to perform any one of a variety of
tasks. This does not necessarily result in anything at all being sent to
the output file!







                                  Page 2








Interactive programming                                  J.J.Brayshaw 1987




The two different look-up tables are known as the 'lone' table and the
'escaped' table. Each byte is looked up in the lone table unless the
decoder is told otherwise.

The RTF protocol assumes the incoming data is in normal 8-bit mode. As we
have seen, the data sent by CEEFAX is generally in 7-bit form. So the
first part of most telesoftware files is a "|" followed by a "B". The "|"
character (double vertical bar in MODE 7) decodes to an instruction. This
instruction tells the decoder to use the 'escaped' decoding table instead
of the 'lone' table for the next byte only. In this case, the next byte is
"B" (&C2) which decodes (in the escaped table) to another command - to
change the contents of the look-up table to a predefined decoding pattern
for 7-bit data. So a "|B" in the input stream tells the decoder the file
is formatted in 7-bit mode, and decoding should take place accordingly.

So, generally, any byte in the input stream immediately following a "|"
symbol is interpreted using the 'escaped' table, otherwise the 'lone'
table is used.

The RTF protocol allows us to change the entries in either decoding table.
The command to do this is sent with the transmitted file. Codes "q", "r",
"s" and "t" in the escaped table tell the decoder to reset the meaning of
a particular code in one of the two tables. For example, the sequence:

                    |sZ8New text

will reset the entry for "Z" in the lone table to be "New text".
Interpreting each byte in the above line:

 |  tells the decoder to look up the next byte in the escaped table
 s  in the escaped table decodes to a command to reset the meaning of the
    next byte to be the following string
 Z  is the character whose entry is to be redefined
 8  is how long the new definition string is to be
 N   } The eight
 e   } bytes that
 w   } form the
" "  } new definition
 t   } of the
 e   } character "Z"
 x   } in the "lone"
 t   } decoding table

Following this command, every time the character "Z" is received in the
input stream, the string "New text" will be sent to the output file.







                                  Page 3








Interactive programming                                  J.J.Brayshaw 1987




Most of the entries in the Lone decoding table will decode to 7-bit
versions of themselves. For example, if a code &C1 is received (character
"A"), the lone decoding table will redefine this as code &41 (the 7-bit
version of &C1) which is also character "A" (provided that this entry has
not previously been redefined within the file). However, some codes are
set to decode to commands - in particular, code &60 (underscore character)
decodes to the "raise next byte" command. In this case, the following byte
is received, stripped of parity then added to 88. The result is sent to
the output file. Similarly, code &7E (divide sign or tilde) decodes to the
"lower next byte" command, in which the next byte received is stripped of
parity and reduced by 88. The result (MOD 256) is sent to the output file.
For example, the sequence:

                   ~A

decodes to:

                ((ASC"A") AND&7F)-88

(ASC"A")=&C1. Strip the parity with "AND &7F" to give &41. Add 88 as
instructed by the ~ character to give &99

In this way, any of the codes 0 to 255 can be transmitted.

The RTF protocols allow for very efficient data compression techniques to
be performed. Using redefinitions wisely has resulted the reduction of the
length of some transmitted files by as much as 50% over the non-compressed
version.

There are, of course, many other features of the RTF protocol, including
the facility for files to be split over more than one CEEFAX page, or to
put more than one file on a single CEEFAX page or sub-page number.
Comments can be included in the formatted text (to be displayed on screen
during the downloading process) and much more.

The RTF protocol is very flexible. Even the commands themselves can be
reallocated to different codes if required.















                                  Page 4








Interactive programming                                  J.J.Brayshaw 1987




The RTF decoding algorithm:


                 START
                   |
  +----------------+
  |                |
  |        +---------------+
  |        | Get byte      |
  |        +---------------+
  |                |
  |        +---------------+
  |        | Look up the   |
  |        | meaning in the|
  |        | Lone table    |
  |        +---------------+
  |                 |
  |                / \           +------+     +----------------+
  |              /is it\   YES   | Get  |     | look up the    |
  |             <Escape >--------| next |-----| meaning in the |
  |              \  ?  /         | byte |     | Escaped table  |
  |                \ /           +------+     +----------------+
  |              NO |                                  |
  |                 +----------------------------------+
  |                 |
  |                / \
  |              /is it\   YES   +---------+
  |             <Command>--------| Execute |-----------+
  |              \  ?  /         | command |           |
  |                \ /           +---------+          / \
  |              NO |                               / End \  YES
  |                 |                              <   of  >-----+
  |          +--------------+                       \block/      |
  |          | Send byte(s) |                         \?/       / \
  |          | to output    |                          |      / End \ YES
  |          | file         |                       NO |     <of file>--+
  |          +--------------+                          |      \  ?  /   |
  |                 |                                  |        \ /     |
  |                 |                                  |      NO |    STOP
  |                 |                                  |         |
  |                 |                                  |    +----------+
  |                 |                                  |    | Get next |
  |                 |                                  |    | block    |
  |                 |                                  |    +----------+
  |                 |                                  |         |
  +-----------------+----------------------------------+---------+






                                  Page 5








Interactive programming                                  J.J.Brayshaw 1987




Following the downloading of a telesoftware file, the decoding tables may
have been dynamically altered by the incoming file. Normally, the default
tables should be re-instated before downloading further files. However,
this action can be inhibited if required, allowing a second file to be
decoded using the same decoding tables as set up by the first file. This
could save transmission time and coding if the files require the same
redefinitions to apply. As this is rarely the case, and as it is not
guaranteed that the user will download the files in the correct sequence,
the normal procedure is always to reset the default decoding tables before
any subsequent download. The command "|B", "|C" or "|F" at the start of
the file will reset the tables anyway, regardless of whether they were
reset at the end of the previous file or not.

The decoding of a file through the lone and escaped tables is an entirely
automatic process. All that needs to be done is to tell the ATS which file
to download, and where the file can be found. A few other details about
the file are also required.

All the details for all currently broadcast software are given in a
machine-readable file known as the catalogue file. Before downloading, the
decoder should find and interpret the catalogue information. As it is not
possible to assign a particular page to this catalogue on a permanent
basis, the decoder must be able to discover its location every time
downloading is requested. The catalogue page is pointed to by the 5th link
(link 4) of the teletext service main page (for details of page links, see
module 5). To find the services main (or initial) page, the "initial page"
link of the TSDP must be followed. This is given in the first few bytes of
the TSDP. So, for a telesoftware downloader to operate, it must first
find the TSDP and decode the "initial page" link setting held there. It
then finds this initial page and decodes link 4. Following this link will
lead to the machine-readable catalogue where details of the telesoftware
files can be found.

All the downloaded files are stored in memory, a single CEEFAX pageful at
a time, before being saved to disc. This may require as much as 2k of
workspace (or more) allowing for the expansion of text due to
redefinitions, which ATS allocates at OSHWM. Any downloader written in
BASIC will be immediately corrupted by the incoming file unless PAGE and
OSHWM are separated before starting the downloading procedure. This can be
achieved using a simple OSWORD call as in the accompanying program. The
setting of OSHWM must be returned to normal after downloading.











                                  Page 6








Interactive programming                                  J.J.Brayshaw 1987




The catalogue page is encoded using the same protocols as other
telesoftware (i.e. the RTF protocols). This file is normally downloaded to
computer memory rather than to disc. The file comprises data only, the
first two entries being strings intended for direct display on screen. All
string entries in the catalogue follow the same format: The first byte is
the length of the string - simply read its value directly (with
length%=?(start_of_store%)) - then take the appropriate number of bytes to
form the string. Each byte of the string itself should be OR'ed with &80
before display to counter the effects of parity.

There then follows a quantity of entries, one for each transmitted file,
consisting of eight fields:

Field one is a string giving the computer type for which the file is
intended. For BBC computers, this would be "BBC" or "ANY". A decoder
should only allow files for use with the appropriate computer to be
downloaded. Other files should be ignored.

As each computer must be able to easily identify this information, the
string used has to be clearly defined. Computer types defined so far are:
 ANY - For any computer (for example, text files)
 AMIGA - Commodore Amiga computers
 AMSTRAD - Amstrad computers
 ATARIST - Atari ST computers
 BBC - BBC Microcomputers (Master, B+ or B)
 CBM64 - Commodore 64 computers
 CBM128 - Commodore 128 computers
 COMM - Acorn Communicators
 CPM - Any CPM computer
 IBM - IBM computers
 MSDOS - Any MSDOS computer
 SPECTRUM - Sinclair Spectrum computers

This field is also used to mark the end of the catalogue entries. If this
is found to be "***" then there are no more entries in the catalogue.

Field two is a string, giving the filename. The first byte is a single
colour code character, and is not part of the filename. Adjacent entries
in the catalogue that have the same colour code character describe files
that are to be used in conjunction with each other. A white colour code
character signifies a single file unconnected with any other.

The string in field three specifies the type of file. There are no defined
strings for these, but typical entries here include "Text", "BASIC",
"M/C", "EXEC", "Notes" etc. This can be used as a guide to how to use the
file after downloading.






                                  Page 7








Interactive programming                                  J.J.Brayshaw 1987




Field four is a string giving the size of the file. It is intended for
display only, and no defined format for this information exists. It is
frequently used to describe the quantity of CEEFAX pages occupied by the
file (for example "14 pages"), but may express the size in other forms
such as "1.25k". This should not be used to inform the downloading
software of the total file length. Such information is available within
the coding of the file itself.

The fifth field is the absolute load address of the file. No field length
byte is included as it is always four bytes long. It has the most
significant byte first. There is no interpretation to apply to the byte
values.

Field six is the execution address of the file. As with the load address,
no field length byte is given, it being always four bytes long with the
most significant byte first.

Note that although the catalogue information gives both load and execution
addresses, these are only used to set the correct file attributes when
saving the file. The file will not be stored at the given address during
the downloading procedure. (In some cases, the load address given in the
catalogue is also used to determine the exact position within the output
file to send the decoded block of the file).

The seventh field is a single byte giving the magazine number in which the
file is broadcast.

Field eight is a single byte giving the page number where the start of the
file can be found.

After interpreting the first two strings, the information for each file
appears as in the following example:

Byte of   Value   Meaning
record    of byte
=======   ======= =======
Byte 0    &03     Length of the first field of the first file is 3
Byte 1    &40    } The first field string is CHR$(&40 OR &80) +
Byte 2    &CE    } CHR$(&CE OR &80) + CHR$(&D9 OR &80) which is "ANY"
Byte 3    &D9    } indicating the file is for any make of computer
Byte 4    &04     The filename is three characters long, with a colour
                  control code at the beginning
Byte 5    &81     Red colour control code - CHR$(&81 OR &80)
Bytes 6-8         The filename
Byte 9    &04     The file type is four bytes long
Bytes 10-13       The file type
Byte 14   &08     The length of the file is described by the next 8 byte
                  string




                                  Page 8








Interactive programming                                  J.J.Brayshaw 1987




Bytes 15-22       The file length string
Byte 23   &00    } The absolute load address is &00001900
Byte 24   &00    }
Byte 25   &19    }
Byte 26   &00    }
Byte 27   &00      } The execution address for the file is &00008023
Byte 28   &00      }
Byte 29   &80      }
Byte 30   &23      }
Byte 31   &07     The file is transmitted in magazine 7
Byte 32   &21     The file is transmitted on page 21 of the magazine

The next byte would be the first of the next record.

Once details for each file have been found, the downloading process can
start. It is now a simple matter to ignore any file not required (for
example a file that does not have a computer type of "BBC" or "ANY") or
accept only files with a file type of "TEXT" or "NOTES", etc. It is
important to remember that ATS requires the filename to be in upper-case
letters, even if the filename as decoded from the catalogue contains
lower-case letters. Therefore, each byte in the string fields should be
AND'ed with &5F to ensure it is upper-case, and that it lies in the range
of codes produced by the BBC's keyboard!

The ATS provides a routine to download any file, given certain
information. It must be told the filename (in upper-case, excluding the
preceding colour control code found in the catalogue entry), load address,
execution address, magazine number, page number, whether to load to file
or memory, and whether to reset the RTF decoding tables to their default
settings after downloading.

Using a direct OSWORD call to the ATS allows software to be downloaded
without the need to refer to the catalogue page at all (provided the
necessary details are known about the file in advance). This makes it
possible to download software from any channel, irrespective of whether a
catalogue is being transmitted or not.

By interpreting the catalogue file, automatic downloaders can be created
to cater for any requirements. Download all the files without further
intervention, or download all text-only files, or all those less than 5
pages long, etc. etc. The versatility of this system is endless.

__________________________________________________________________________









                                  Page 9








Interactive programming                                  J.J.Brayshaw 1987




The accompanying program, when run, will download a file from any channel,
and will require the input of the following information:

 1. Television channel number

 2. Teletext page for the start of the file (the magazine number is
    calculated from the given page number)

 3. Filename. This MUST be entered in upper case, and otherwise correspond
    exactly with that given in the file

 4. Absolute load address of the file. If the file contains absolute
    addressing within the coding, then the address given here MUST
    correspond to the address given in the first block of the file. If the
    file addressing within the coded file is a relative address, then the
    information given here is only used for setting the file attributes on
    saving

 5. Execution address of the file (used only for setting the correct file
    attributes on saving)

 6. File to load to memory or filing system. The downloaded file is
    normally saved to disc as each block is received, building up the
    complete file on disc. You can, however, opt to download the file into
    memory only, if preferred, provided sufficient spare memory is
    available!

 7. Reset the default tables after downloading. Normally, this should be
    done to avoid incorrect decoding of subsequent files. In practice,
    however, the tables are usually reset at the start of any subsequent
    downloading operation.

To find the load address without reference to the catalogue information,
look at the first page of the telesoftware file. Somewhere towards the
start of the coding should be the command sequence: "|l" or "|m". These
codes indicate the start of the load address data. |l indicates the load
address that follows is an absolute address, and |m shows it is relative
(relative to the begining of the file). There follows a single byte giving
the number of bytes comprising the address. This is in plain ASCII format,
and can be read directly. For example, the coding:

                       |m41076

shows the address to be a relative one of four bytes long, the address
being &1076. The execution address is not always given in the file itself,
but if it is present it will be preceded by |n for a relative address, or
|o for an absolute address.





                                 Page 10








Interactive programming                                  J.J.Brayshaw 1987




The precise filename can also be found from the first page of a
telesoftware file. Look for a "|a" sequence. This tells the decoder the
filename (and sometimes the version and date) follows.

The command "|a" is followed by a single digit giving the number of fields
(in this case, up to 3). The first field is the filename. The second,
which is optional, is the version number of the file. The third field,
also optional, is the MJD (date) of the file. This is not the transmission
date, but a date connected in some way with the file. For example,

                 |a34Prog225549024

would mean:

 |   Use the Escaped table to decode the following byte
 a   The Escape table decodes this to be "Title, version and Date follows"
 3   There are 3 fields to the command
 4   The first field is 4 bytes long
 P    } These four
 r    } bytes form
 o    } the file
 g    } name ("Prog")
 2   The second field is 2 bytes long
 2    } The second field
 5    } (version number) is "25"
 5   The third field is 5 bytes long
 4    } These 5 bytes
 9    } give the
 0    } third field
 2    } (the Modified
 4    } Julian Date) as "49024"

This, therefore, gives the means to download any file from any channel.
Beware, however, as downloading files not intended for the BBC micro may
not be as successful as you might imagine!

















                                 Page 11



00000000  0d 0a 0d 0a 0d 0a 0d 0a  49 6e 74 65 72 61 63 74  |........Interact|
00000010  69 76 65 20 70 72 6f 67  72 61 6d 6d 69 6e 67 20  |ive programming |
00000020  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000040  20 4a 2e 4a 2e 42 72 61  79 73 68 61 77 20 31 39  | J.J.Brayshaw 19|
00000050  38 37 0d 0a 0d 0a 0d 0a  0d 0a 0d 0a 54 72 61 6e  |87..........Tran|
00000060  73 6d 69 73 73 69 6f 6e  20 6f 66 20 63 6f 6d 70  |smission of comp|
00000070  75 74 65 72 20 73 6f 66  74 77 61 72 65 20 76 69  |uter software vi|
00000080  61 20 74 65 6c 65 74 65  78 74 20 69 73 20 6e 6f  |a teletext is no|
00000090  74 20 71 75 69 74 65 20  74 68 65 20 73 69 6d 70  |t quite the simp|
000000a0  6c 65 0d 0a 70 72 6f 63  65 73 73 20 69 74 20 6d  |le..process it m|
000000b0  61 79 20 61 74 20 66 69  72 73 74 20 73 65 65 6d  |ay at first seem|
000000c0  2e 20 49 6e 20 70 72 61  63 74 69 63 65 2c 20 6d  |. In practice, m|
000000d0  61 6e 79 20 66 61 63 74  6f 72 73 20 68 61 76 65  |any factors have|
000000e0  20 74 6f 20 62 65 0d 0a  63 6f 6e 73 69 64 65 72  | to be..consider|
000000f0  65 64 20 69 6e 20 6f 72  64 65 72 20 74 6f 20 62  |ed in order to b|
00000100  72 6f 61 64 63 61 73 74  20 74 68 65 20 66 75 6c  |roadcast the ful|
00000110  6c 20 72 61 6e 67 65 20  6f 66 20 63 6f 64 65 73  |l range of codes|
00000120  20 69 6e 63 6c 75 64 65  64 20 69 6e 0d 0a 74 65  | included in..te|
00000130  6c 65 73 6f 66 74 77 61  72 65 20 66 69 6c 65 73  |lesoftware files|
00000140  2e 20 54 68 69 73 20 6d  6f 64 75 6c 65 20 6c 6f  |. This module lo|
00000150  6f 6b 73 20 61 74 20 73  6f 6d 65 20 6f 66 20 74  |oks at some of t|
00000160  68 65 20 70 72 6f 62 6c  65 6d 73 2c 20 61 6e 64  |he problems, and|
00000170  20 6f 66 66 65 72 73 0d  0a 70 72 61 63 74 69 63  | offers..practic|
00000180  61 6c 20 72 6f 75 74 69  6e 65 73 20 66 6f 72 20  |al routines for |
00000190  64 6f 77 6e 6c 6f 61 64  69 6e 67 20 61 6e 79 20  |downloading any |
000001a0  63 6f 72 72 65 63 74 6c  79 20 66 6f 72 6d 61 74  |correctly format|
000001b0  74 65 64 20 66 69 6c 65  73 20 66 72 6f 6d 20 61  |ted files from a|
000001c0  6e 79 0d 0a 74 65 6c 65  74 65 78 74 20 63 68 61  |ny..teletext cha|
000001d0  6e 6e 65 6c 2e 0d 0a 0d  0a 5f 5f 5f 5f 5f 5f 5f  |nnel....._______|
000001e0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00000220  5f 5f 5f 0d 0a 0d 0a 54  65 6c 65 74 65 78 74 20  |___....Teletext |
00000230  49 6e 74 65 72 61 63 74  69 76 65 20 50 6f 72 67  |Interactive Porg|
00000240  72 61 6d 6d 69 6e 67 3a  0d 0a 0d 0a 41 64 76 61  |ramming:....Adva|
00000250  6e 63 65 64 20 54 65 6c  65 74 65 78 74 20 53 79  |nced Teletext Sy|
00000260  73 74 65 6d 2e 20 36 0d  0a 0d 0a 28 63 29 20 4a  |stem. 6....(c) J|
00000270  2e 4a 2e 42 72 61 79 73  68 61 77 20 31 39 38 37  |.J.Brayshaw 1987|
00000280  0d 0a 0d 0a 54 65 6c 65  73 6f 66 74 77 61 72 65  |....Telesoftware|
00000290  20 66 69 6c 65 73 3a 0d  0a 0d 0a 0d 0a 43 6f 6d  | files:......Com|
000002a0  70 75 74 65 72 20 73 6f  66 74 77 61 72 65 20 64  |puter software d|
000002b0  65 73 69 67 6e 65 64 20  66 6f 72 20 75 73 65 20  |esigned for use |
000002c0  77 69 74 68 20 61 6e 20  38 2d 62 69 74 20 63 6f  |with an 8-bit co|
000002d0  6d 70 75 74 65 72 20 63  6f 6e 73 69 73 74 73 0d  |mputer consists.|
000002e0  0a 65 6e 74 69 72 65 6c  79 20 6f 66 20 63 6f 64  |.entirely of cod|
000002f0  65 73 20 69 6e 20 74 68  65 20 72 61 6e 67 65 20  |es in the range |
00000300  26 30 30 20 74 6f 20 26  46 46 2c 20 6f 72 20 30  |&00 to &FF, or 0|
00000310  20 74 6f 20 32 35 35 2e  20 54 72 61 6e 73 6d 69  | to 255. Transmi|
00000320  73 73 69 6f 6e 20 6f 66  0d 0a 73 6f 66 74 77 61  |ssion of..softwa|
00000330  72 65 20 76 69 61 20 43  45 45 46 41 58 20 69 73  |re via CEEFAX is|
00000340  2c 20 74 68 65 72 65 66  6f 72 65 2c 20 74 68 65  |, therefore, the|
00000350  6f 72 65 74 69 63 61 6c  6c 79 20 65 61 73 79 2e  |oretically easy.|
00000360  20 4a 75 73 74 20 72 65  70 6c 61 63 65 20 74 68  | Just replace th|
00000370  65 0d 0a 63 68 61 72 61  63 74 65 72 73 20 74 68  |e..characters th|
00000380  61 74 20 6d 61 6b 65 20  75 70 20 61 20 64 69 73  |at make up a dis|
00000390  70 6c 61 79 61 62 6c 65  20 70 61 67 65 20 77 69  |playable page wi|
000003a0  74 68 20 74 68 65 20 63  6f 64 65 73 2c 20 69 6e  |th the codes, in|
000003b0  20 74 68 65 20 63 6f 72  72 65 63 74 0d 0a 73 65  | the correct..se|
000003c0  71 75 65 6e 63 65 2c 20  66 72 6f 6d 20 61 20 63  |quence, from a c|
000003d0  6f 6d 70 75 74 65 72 20  70 72 6f 67 72 61 6d 2e  |omputer program.|
000003e0  0d 0a 0d 0a 55 6e 66 6f  72 74 75 6e 61 74 65 6c  |....Unfortunatel|
000003f0  79 2c 20 74 68 65 72 65  20 61 72 65 20 61 20 6c  |y, there are a l|
00000400  6f 74 20 6f 66 20 70 72  6f 62 6c 65 6d 73 20 69  |ot of problems i|
00000410  6e 20 64 6f 69 6e 67 20  74 68 69 73 2e 20 54 68  |n doing this. Th|
00000420  65 20 43 45 45 46 41 58  0d 0a 73 79 73 74 65 6d  |e CEEFAX..system|
00000430  2c 20 61 73 20 77 69 74  68 20 61 6e 79 20 74 65  |, as with any te|
00000440  6c 65 74 65 78 74 20 73  79 73 74 65 6d 2c 20 69  |letext system, i|
00000450  73 20 64 65 73 69 67 6e  65 64 20 74 6f 20 77 6f  |s designed to wo|
00000460  72 6b 20 69 6e 20 37 2d  62 69 74 20 6d 6f 64 65  |rk in 7-bit mode|
00000470  2e 0d 0a 54 68 69 73 20  6d 65 61 6e 73 20 74 68  |...This means th|
00000480  61 74 20 6f 6e 6c 79 20  31 32 38 20 6f 66 20 74  |at only 128 of t|
00000490  68 65 20 72 65 71 75 69  72 65 64 20 32 35 36 20  |he required 256 |
000004a0  63 6f 64 65 73 20 63 61  6e 20 62 65 20 62 72 6f  |codes can be bro|
000004b0  61 64 63 61 73 74 2e 20  54 68 65 0d 0a 38 74 68  |adcast. The..8th|
000004c0  20 28 74 6f 70 29 20 62  69 74 20 6f 66 20 65 61  | (top) bit of ea|
000004d0  63 68 20 38 2d 62 69 74  20 73 65 71 75 65 6e 63  |ch 8-bit sequenc|
000004e0  65 20 69 73 20 75 73 65  64 20 66 6f 72 20 61 20  |e is used for a |
000004f0  70 61 72 69 74 79 20 63  68 65 63 6b 2e 0d 0a 0d  |parity check....|
00000500  0a 54 68 65 20 70 61 72  69 74 79 20 63 68 65 63  |.The parity chec|
00000510  6b 20 69 73 20 6e 65 63  65 73 73 61 72 79 20 6e  |k is necessary n|
00000520  6f 74 20 6a 75 73 74 20  74 6f 20 63 68 65 63 6b  |ot just to check|
00000530  20 74 68 65 20 69 6e 74  65 67 72 69 74 79 20 6f  | the integrity o|
00000540  66 20 74 68 65 0d 0a 72  65 63 65 69 76 65 64 20  |f the..received |
00000550  64 61 74 61 2c 20 62 75  74 20 61 6c 73 6f 20 74  |data, but also t|
00000560  6f 20 63 68 65 63 6b 20  61 6e 64 20 63 6f 72 72  |o check and corr|
00000570  65 63 74 20 74 68 65 20  72 65 63 65 69 76 65 72  |ect the receiver|
00000580  27 73 20 69 6e 74 65 72  6e 61 6c 20 63 6c 6f 63  |'s internal cloc|
00000590  6b 0d 0a 66 72 6f 6d 20  77 68 69 63 68 20 69 74  |k..from which it|
000005a0  20 64 65 74 65 72 6d 69  6e 65 73 20 77 68 65 6e  | determines when|
000005b0  20 65 61 63 68 20 62 69  74 20 73 74 61 72 74 73  | each bit starts|
000005c0  20 61 6e 64 20 65 6e 64  73 2e 20 55 73 69 6e 67  | and ends. Using|
000005d0  20 22 6f 64 64 20 70 61  72 69 74 79 22 0d 0a 65  | "odd parity"..e|
000005e0  6e 73 75 72 65 73 20 74  68 61 74 20 74 68 65 72  |nsures that ther|
000005f0  65 20 69 73 20 61 20 63  68 61 6e 67 65 20 6f 66  |e is a change of|
00000600  20 73 74 61 74 65 20 66  72 6f 6d 20 7a 65 72 6f  | state from zero|
00000610  20 74 6f 20 6f 6e 65 20  6f 72 20 76 69 63 65 20  | to one or vice |
00000620  76 65 72 73 61 20 28 61  74 0d 0a 69 6e 64 69 76  |versa (at..indiv|
00000630  69 64 75 61 6c 20 62 69  74 20 6c 65 76 65 6c 29  |idual bit level)|
00000640  20 69 6e 20 65 76 65 72  79 20 73 69 6e 67 6c 65  | in every single|
00000650  20 63 6f 64 65 2e 20 54  68 65 20 63 6c 6f 63 6b  | code. The clock|
00000660  20 69 73 20 64 65 73 69  67 6e 65 64 20 74 6f 20  | is designed to |
00000670  72 65 73 65 74 0d 0a 69  74 73 65 6c 66 20 65 61  |reset..itself ea|
00000680  63 68 20 74 69 6d 65 20  61 20 63 68 61 6e 67 65  |ch time a change|
00000690  20 6f 66 20 73 74 61 74  65 20 6f 63 63 75 72 73  | of state occurs|
000006a0  2e 20 49 6e 20 74 68 69  73 20 77 61 79 2c 20 69  |. In this way, i|
000006b0  74 20 6f 6e 6c 79 20 6e  65 65 64 73 20 74 6f 0d  |t only needs to.|
000006c0  0a 62 65 20 61 63 63 75  72 61 74 65 20 65 6e 6f  |.be accurate eno|
000006d0  75 67 68 20 74 6f 20 72  65 63 65 69 76 65 20 61  |ugh to receive a|
000006e0  20 73 69 6e 67 6c 65 20  62 79 74 65 20 62 65 66  | single byte bef|
000006f0  6f 72 65 20 61 20 72 65  73 65 74 20 69 73 20 6d  |ore a reset is m|
00000700  61 64 65 2e 0d 0a 0d 0a  54 68 69 73 20 6d 65 61  |ade.....This mea|
00000710  6e 73 20 74 68 61 74 20  6f 6e 6c 79 20 74 68 65  |ns that only the|
00000720  20 6c 6f 77 65 72 20 37  20 62 69 74 73 20 6f 66  | lower 7 bits of|
00000730  20 65 61 63 68 20 63 6f  64 65 20 72 65 63 65 69  | each code recei|
00000740  76 65 64 20 66 6f 72 6d  20 74 68 65 20 64 61 74  |ved form the dat|
00000750  61 2e 0d 0a 54 68 65 20  74 6f 70 20 62 69 74 20  |a...The top bit |
00000760  69 73 20 65 69 74 68 65  72 20 73 65 74 20 6f 72  |is either set or|
00000770  20 63 6c 65 61 72 2c 20  77 68 69 63 68 65 76 65  | clear, whicheve|
00000780  72 20 77 69 6c 6c 20 65  6e 73 75 72 65 20 61 6e  |r will ensure an|
00000790  20 6f 64 64 20 71 75 61  6e 74 69 74 79 0d 0a 6f  | odd quantity..o|
000007a0  66 20 62 69 74 73 20 73  65 74 20 69 6e 20 74 68  |f bits set in th|
000007b0  65 20 77 68 6f 6c 65 20  38 2d 62 69 74 20 62 79  |e whole 8-bit by|
000007c0  74 65 2e 20 54 68 65 20  74 68 65 6f 72 79 20 69  |te. The theory i|
000007d0  73 20 74 68 61 74 20 61  20 64 65 63 6f 64 65 72  |s that a decoder|
000007e0  20 73 68 6f 75 6c 64 0d  0a 63 6f 75 6e 74 20 74  | should..count t|
000007f0  68 65 20 6e 75 6d 62 65  72 20 6f 66 20 62 69 74  |he number of bit|
00000800  73 20 74 68 61 74 20 61  72 65 20 73 65 74 20 74  |s that are set t|
00000810  6f 20 6f 6e 65 20 69 6e  20 65 61 63 68 20 62 79  |o one in each by|
00000820  74 65 20 72 65 63 65 69  76 65 64 2e 20 49 66 0d  |te received. If.|
00000830  0a 74 68 69 73 20 69 73  20 61 6e 20 65 76 65 6e  |.this is an even|
00000840  20 71 75 61 6e 74 69 74  79 2c 20 74 68 65 20 62  | quantity, the b|
00000850  79 74 65 20 69 73 20 69  6e 20 65 72 72 6f 72 20  |yte is in error |
00000860  61 6e 64 20 74 68 65 20  64 65 63 6f 64 65 72 20  |and the decoder |
00000870  63 61 6e 20 74 61 6b 65  0d 0a 61 70 70 72 6f 70  |can take..approp|
00000880  72 69 61 74 65 20 61 63  74 69 6f 6e 2e 20 49 6e  |riate action. In|
00000890  20 70 72 61 63 74 69 63  65 2c 20 68 6f 77 65 76  | practice, howev|
000008a0  65 72 2c 20 74 68 65 72  65 20 69 73 20 6c 69 74  |er, there is lit|
000008b0  74 6c 65 20 72 65 6d 65  64 69 61 6c 20 61 63 74  |tle remedial act|
000008c0  69 6f 6e 0d 0a 61 20 64  65 63 6f 64 65 72 20 63  |ion..a decoder c|
000008d0  61 6e 20 74 61 6b 65 20  77 68 65 6e 20 61 20 22  |an take when a "|
000008e0  70 61 72 69 74 79 20 65  72 72 6f 72 22 20 6f 63  |parity error" oc|
000008f0  63 75 72 73 2c 20 61 6e  64 20 63 6f 6e 73 65 71  |curs, and conseq|
00000900  75 65 6e 74 6c 79 20 74  68 69 73 0d 0a 63 68 65  |uently this..che|
00000910  63 6b 20 69 73 20 6f 66  74 65 6e 20 6e 6f 74 20  |ck is often not |
00000920  63 61 72 72 69 65 64 20  6f 75 74 2e 20 4f 64 64  |carried out. Odd|
00000930  20 70 61 72 69 74 79 20  74 72 61 6e 73 6d 69 73  | parity transmis|
00000940  73 69 6f 6e 20 69 73 20  73 74 69 6c 6c 20 75 73  |sion is still us|
00000950  65 66 75 6c 2c 0d 0a 68  6f 77 65 76 65 72 2c 20  |eful,..however, |
00000960  74 6f 20 65 6e 73 75 72  65 20 63 6c 6f 63 6b 20  |to ensure clock |
00000970  74 69 6d 69 6e 67 20 61  63 63 75 72 61 63 79 2e  |timing accuracy.|
00000980  0d 0a 0d 0a 0d 0a 0d 0a  0d 0a 0d 0a 0d 0a 20 20  |..............  |
00000990  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000009b0  50 61 67 65 20 31 0d 0a  0d 0a 0d 0a 0d 0a 0d 0a  |Page 1..........|
000009c0  0d 0a 0d 0a 0d 0a 0d 0a  49 6e 74 65 72 61 63 74  |........Interact|
000009d0  69 76 65 20 70 72 6f 67  72 61 6d 6d 69 6e 67 20  |ive programming |
000009e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000a00  20 4a 2e 4a 2e 42 72 61  79 73 68 61 77 20 31 39  | J.J.Brayshaw 19|
00000a10  38 37 0d 0a 0d 0a 0d 0a  0d 0a 0d 0a 53 6f 20 74  |87..........So t|
00000a20  65 6c 65 74 65 78 74 20  74 72 61 6e 73 6d 69 73  |eletext transmis|
00000a30  73 69 6f 6e 73 20 61 72  65 20 6c 69 6d 69 74 65  |sions are limite|
00000a40  64 20 74 6f 20 61 20 6d  61 78 69 6d 75 6d 20 6f  |d to a maximum o|
00000a50  66 20 31 32 38 20 64 69  66 66 65 72 65 6e 74 20  |f 128 different |
00000a60  63 6f 64 65 73 2e 0d 0a  54 68 69 73 20 71 75 61  |codes...This qua|
00000a70  6e 74 69 74 79 20 69 73  20 66 75 72 74 68 65 72  |ntity is further|
00000a80  20 72 65 64 75 63 65 64  20 62 79 20 43 45 45 46  | reduced by CEEF|
00000a90  41 58 20 70 72 6f 74 6f  63 6f 6c 73 20 77 68 69  |AX protocols whi|
00000aa0  63 68 20 6d 61 6b 65 20  69 74 0d 0a 64 69 66 66  |ch make it..diff|
00000ab0  69 63 75 6c 74 20 74 6f  20 62 72 6f 61 64 63 61  |icult to broadca|
00000ac0  73 74 20 63 65 72 74 61  69 6e 20 63 6f 64 65 73  |st certain codes|
00000ad0  20 77 69 74 68 6f 75 74  20 61 64 76 65 72 73 65  | without adverse|
00000ae0  20 65 66 66 65 63 74 73  2e 20 46 6f 72 20 65 78  | effects. For ex|
00000af0  61 6d 70 6c 65 2c 0d 0a  63 68 61 72 61 63 74 65  |ample,..characte|
00000b00  72 20 63 6f 64 65 20 31  33 20 77 69 6c 6c 20 74  |r code 13 will t|
00000b10  65 6c 6c 20 61 20 74 65  6c 65 74 65 78 74 20 73  |ell a teletext s|
00000b20  65 74 20 74 68 61 74 20  64 6f 75 62 6c 65 2d 68  |et that double-h|
00000b30  65 69 67 68 74 20 74 65  78 74 0d 0a 66 6f 6c 6c  |eight text..foll|
00000b40  6f 77 73 2e 20 49 6e 20  74 68 69 73 20 63 61 73  |ows. In this cas|
00000b50  65 2c 20 74 68 65 20 66  6f 6c 6c 6f 77 69 6e 67  |e, the following|
00000b60  20 72 6f 77 20 73 68 6f  75 6c 64 20 6e 6f 74 20  | row should not |
00000b70  62 65 20 62 72 6f 61 64  63 61 73 74 2c 20 61 73  |be broadcast, as|
00000b80  20 69 74 0d 0a 77 69 6c  6c 20 62 65 20 65 78 61  | it..will be exa|
00000b90  63 74 6c 79 20 74 68 65  20 73 61 6d 65 20 61 73  |ctly the same as|
00000ba0  20 74 68 65 20 70 72 65  63 65 64 69 6e 67 20 72  | the preceding r|
00000bb0  6f 77 20 61 6e 64 20 74  68 65 72 65 66 6f 72 65  |ow and therefore|
00000bc0  20 63 61 6e 20 62 65 0d  0a 67 65 6e 65 72 61 74  | can be..generat|
00000bd0  65 64 20 62 79 20 74 68  65 20 74 65 6c 65 74 65  |ed by the telete|
00000be0  78 74 20 73 65 74 2c 20  74 68 75 73 20 73 61 76  |xt set, thus sav|
00000bf0  69 6e 67 20 74 72 61 6e  73 6d 69 73 73 69 6f 6e  |ing transmission|
00000c00  20 74 69 6d 65 2e 20 54  68 69 73 20 65 6e 73 75  | time. This ensu|
00000c10  72 65 73 0d 0a 61 20 63  6f 72 72 65 63 74 20 64  |res..a correct d|
00000c20  6f 75 62 6c 65 2d 68 65  69 67 68 74 20 64 69 73  |ouble-height dis|
00000c30  70 6c 61 79 20 6f 6e 20  61 20 43 45 45 46 41 58  |play on a CEEFAX|
00000c40  20 70 61 67 65 2c 20 62  75 74 20 77 69 6c 6c 20  | page, but will |
00000c50  63 61 75 73 65 20 73 65  76 65 72 65 0d 0a 70 72  |cause severe..pr|
00000c60  6f 62 6c 65 6d 73 20 69  6e 20 61 20 74 65 6c 65  |oblems in a tele|
00000c70  73 6f 66 74 77 61 72 65  20 66 69 6c 65 2c 20 61  |software file, a|
00000c80  73 20 6f 6e 65 20 6f 66  20 74 68 65 20 70 61 63  |s one of the pac|
00000c90  6b 65 74 73 20 69 6e 20  74 68 65 20 74 72 61 6e  |kets in the tran|
00000ca0  73 6d 69 74 74 65 64 0d  0a 73 65 71 75 65 6e 63  |smitted..sequenc|
00000cb0  65 20 77 69 6c 6c 20 62  65 20 6d 69 73 73 69 6e  |e will be missin|
00000cc0  67 2e 20 53 6f 6d 65 20  6f 74 68 65 72 20 63 6f  |g. Some other co|
00000cd0  64 65 73 20 61 6c 73 6f  20 63 61 75 73 65 20 70  |des also cause p|
00000ce0  72 6f 62 6c 65 6d 73 20  61 74 20 74 68 65 0d 0a  |roblems at the..|
00000cf0  74 72 61 6e 73 6d 69 73  73 69 6f 6e 20 6f 72 20  |transmission or |
00000d00  72 65 63 65 70 74 69 6f  6e 20 73 74 61 67 65 2c  |reception stage,|
00000d10  20 61 6e 64 20 61 72 65  20 62 65 73 74 20 61 76  | and are best av|
00000d20  6f 69 64 65 64 2e 0d 0a  0d 0a 49 6e 20 6f 72 64  |oided.....In ord|
00000d30  65 72 20 74 6f 20 63 61  74 65 72 20 66 6f 72 20  |er to cater for |
00000d40  74 68 65 20 62 72 6f 61  64 63 61 73 74 20 6f 66  |the broadcast of|
00000d50  20 74 68 65 73 65 20 75  6e 74 72 61 6e 73 6d 69  | these untransmi|
00000d60  74 74 61 62 6c 65 20 63  6f 64 65 73 2c 20 61 0d  |ttable codes, a.|
00000d70  0a 70 72 6f 74 6f 63 6f  6c 20 66 6f 72 20 74 65  |.protocol for te|
00000d80  6c 65 73 6f 66 74 77 61  72 65 20 74 72 61 6e 73  |lesoftware trans|
00000d90  6d 69 73 73 69 6f 6e 73  20 68 61 64 20 74 6f 20  |missions had to |
00000da0  62 65 20 64 65 76 69 73  65 64 2e 20 54 68 69 73  |be devised. This|
00000db0  20 77 61 73 20 61 67 72  65 65 64 0d 0a 61 74 20  | was agreed..at |
00000dc0  74 68 65 20 61 70 70 72  6f 70 72 69 61 74 65 20  |the appropriate |
00000dd0  49 6e 74 65 72 6e 61 74  69 6f 6e 61 6c 20 53 74  |International St|
00000de0  61 6e 64 61 72 64 73 20  63 6f 6d 6d 69 74 74 65  |andards committe|
00000df0  65 20 73 65 76 65 72 61  6c 20 79 65 61 72 73 20  |e several years |
00000e00  61 67 6f 2c 0d 0a 61 6e  64 20 68 61 73 20 6e 6f  |ago,..and has no|
00000e10  74 20 62 65 65 6e 20 63  68 61 6e 67 65 64 20 69  |t been changed i|
00000e20  6e 20 61 6e 79 20 77 61  79 20 73 69 6e 63 65 2e  |n any way since.|
00000e30  20 41 6c 6c 20 74 68 65  20 74 65 6c 65 73 6f 66  | All the telesof|
00000e40  74 77 61 72 65 20 62 72  6f 61 64 63 61 73 74 0d  |tware broadcast.|
00000e50  0a 62 79 20 74 68 65 20  42 42 43 20 73 69 6e 63  |.by the BBC sinc|
00000e60  65 20 74 68 65 20 73 74  61 72 74 20 6f 66 20 70  |e the start of p|
00000e70  75 62 6c 69 63 20 74 72  61 6e 73 6d 69 73 73 69  |ublic transmissi|
00000e80  6f 6e 73 20 69 6e 20 31  39 38 33 20 68 61 73 20  |ons in 1983 has |
00000e90  62 65 65 6e 20 69 6e 0d  0a 61 63 63 6f 72 64 61  |been in..accorda|
00000ea0  6e 63 65 20 77 69 74 68  20 74 68 69 73 20 70 72  |nce with this pr|
00000eb0  6f 74 6f 63 6f 6c 2e 0d  0a 0d 0a 4b 6e 6f 77 6e  |otocol.....Known|
00000ec0  20 61 73 20 52 54 46 20  28 52 65 64 65 66 69 6e  | as RTF (Redefin|
00000ed0  61 62 6c 65 20 54 65 6c  65 73 6f 66 74 77 61 72  |able Telesoftwar|
00000ee0  65 20 46 6f 72 6d 61 74  29 2c 20 74 68 65 20 70  |e Format), the p|
00000ef0  72 6f 74 6f 63 6f 6c 20  61 6c 6c 6f 77 73 20 61  |rotocol allows a|
00000f00  6e 79 0d 0a 6f 6e 65 20  6f 66 20 74 68 65 20 32  |ny..one of the 2|
00000f10  35 36 20 70 6f 73 73 69  62 6c 65 20 63 6f 64 65  |56 possible code|
00000f20  73 20 74 6f 20 62 65 20  74 72 61 6e 73 6d 69 74  |s to be transmit|
00000f30  74 65 64 2e 20 54 68 65  20 66 69 6c 65 20 69 73  |ted. The file is|
00000f40  20 73 70 6c 69 74 20 69  6e 74 6f 0d 0a 74 65 6c  | split into..tel|
00000f50  65 74 65 78 74 20 70 61  63 6b 65 74 73 20 28 6f  |etext packets (o|
00000f60  72 20 72 6f 77 73 29 20  66 6f 72 20 74 72 61 6e  |r rows) for tran|
00000f70  73 6d 69 73 73 69 6f 6e  2e 20 54 68 65 73 65 20  |smission. These |
00000f80  61 72 65 20 67 69 76 65  6e 20 74 68 65 20 73 74  |are given the st|
00000f90  61 6e 64 61 72 64 0d 0a  43 45 45 46 41 58 20 70  |andard..CEEFAX p|
00000fa0  72 6f 74 6f 63 6f 6c 20  77 68 69 63 68 20 69 6e  |rotocol which in|
00000fb0  63 6c 75 64 65 73 20 61  20 6d 61 67 61 7a 69 6e  |cludes a magazin|
00000fc0  65 20 61 64 64 72 65 73  73 2c 20 61 20 72 6f 77  |e address, a row|
00000fd0  20 61 64 64 72 65 73 73  2c 20 61 6e 64 0d 0a 6f  | address, and..o|
00000fe0  64 64 2d 70 61 72 69 74  79 20 63 6f 64 69 6e 67  |dd-parity coding|
00000ff0  2e 20 54 68 65 20 64 65  63 6f 64 65 72 20 6d 75  |. The decoder mu|
00001000  73 74 20 73 6f 72 74 20  74 68 65 20 70 61 63 6b  |st sort the pack|
00001010  65 74 73 20 69 6e 74 6f  20 63 6f 72 72 65 63 74  |ets into correct|
00001020  20 6f 72 64 65 72 2c 0d  0a 74 68 65 6e 20 73 74  | order,..then st|
00001030  72 69 70 20 74 68 65 20  72 6f 77 20 61 6e 64 20  |rip the row and |
00001040  6d 61 67 61 7a 69 6e 65  20 61 64 64 72 65 73 73  |magazine address|
00001050  65 73 20 66 72 6f 6d 20  74 68 65 20 69 6e 63 6f  |es from the inco|
00001060  6d 69 6e 67 20 64 61 74  61 2e 20 54 68 65 0d 0a  |ming data. The..|
00001070  6c 65 6e 67 74 68 20 6f  66 20 74 68 65 20 70 61  |length of the pa|
00001080  67 65 20 68 61 73 20 62  65 65 6e 20 65 78 74 65  |ge has been exte|
00001090  6e 64 65 64 20 62 79 20  74 77 6f 20 72 6f 77 73  |nded by two rows|
000010a0  20 74 6f 20 61 6c 6c 6f  77 20 66 6f 72 20 61 20  | to allow for a |
000010b0  66 75 6c 6c 20 31 6b 20  6f 66 0d 0a 64 61 74 61  |full 1k of..data|
000010c0  20 74 6f 20 62 65 20 73  65 6e 74 20 77 69 74 68  | to be sent with|
000010d0  20 65 61 63 68 20 43 45  45 46 41 58 20 70 61 67  | each CEEFAX pag|
000010e0  65 2e 20 54 68 65 20 74  65 6c 65 73 6f 66 74 77  |e. The telesoftw|
000010f0  61 72 65 20 66 69 6c 65  20 63 61 6e 20 6f 63 63  |are file can occ|
00001100  75 70 79 0d 0a 74 68 65  20 63 65 6e 74 72 65 20  |upy..the centre |
00001110  32 34 20 62 79 74 65 73  20 6f 66 20 70 61 63 6b  |24 bytes of pack|
00001120  65 74 20 7a 65 72 6f 2c  20 70 6c 75 73 20 34 30  |et zero, plus 40|
00001130  20 62 79 74 65 73 20 66  72 6f 6d 20 65 61 63 68  | bytes from each|
00001140  20 6f 66 20 70 61 63 6b  65 74 73 20 31 0d 0a 74  | of packets 1..t|
00001150  6f 20 32 35 20 69 6e 63  6c 75 73 69 76 65 2e 20  |o 25 inclusive. |
00001160  54 68 69 73 20 67 69 76  65 73 20 31 30 32 34 20  |This gives 1024 |
00001170  63 68 61 72 61 63 74 65  72 20 70 6f 73 69 74 69  |character positi|
00001180  6f 6e 73 2c 20 77 68 69  63 68 20 69 73 20 65 78  |ons, which is ex|
00001190  61 63 74 6c 79 20 31 6b  0d 0a 6f 66 20 64 61 74  |actly 1k..of dat|
000011a0  61 2e 0d 0a 0d 0a 54 68  65 20 64 61 74 61 20 72  |a.....The data r|
000011b0  65 63 65 69 76 65 64 20  69 73 20 71 75 65 75 65  |eceived is queue|
000011c0  64 20 69 6e 20 61 6e 20  69 6e 70 75 74 20 62 75  |d in an input bu|
000011d0  66 66 65 72 2e 20 45 61  63 68 20 62 79 74 65 20  |ffer. Each byte |
000011e0  69 73 20 74 61 6b 65 6e  20 69 6e 20 74 75 72 6e  |is taken in turn|
000011f0  0d 0a 61 6e 64 20 64 65  63 6f 64 65 64 20 75 73  |..and decoded us|
00001200  69 6e 67 20 61 20 27 6c  6f 6f 6b 2d 75 70 27 20  |ing a 'look-up' |
00001210  74 61 62 6c 65 2e 20 54  68 65 73 65 20 6c 6f 6f  |table. These loo|
00001220  6b 2d 75 70 20 74 61 62  6c 65 73 20 61 70 70 6c  |k-up tables appl|
00001230  79 20 74 6f 20 65 76 65  72 79 0d 0a 73 69 6e 67  |y to every..sing|
00001240  6c 65 20 62 79 74 65 20  72 65 63 65 69 76 65 64  |le byte received|
00001250  2c 20 61 6e 64 20 73 6f  20 77 68 61 74 20 61 70  |, and so what ap|
00001260  70 65 61 72 73 20 69 6e  20 74 68 65 20 69 6e 70  |pears in the inp|
00001270  75 74 20 73 74 72 65 61  6d 20 69 73 20 6e 6f 74  |ut stream is not|
00001280  0d 0a 6e 65 63 65 73 73  61 72 69 6c 79 20 77 68  |..necessarily wh|
00001290  61 74 20 69 73 20 73 65  6e 74 20 74 6f 20 74 68  |at is sent to th|
000012a0  65 20 6f 75 74 70 75 74  20 66 69 6c 65 2e 0d 0a  |e output file...|
000012b0  0d 0a 45 61 63 68 20 62  79 74 65 20 69 73 20 6c  |..Each byte is l|
000012c0  6f 6f 6b 65 64 20 75 70  20 69 6e 20 6f 6e 65 20  |ooked up in one |
000012d0  6f 66 20 74 77 6f 20 74  61 62 6c 65 73 2c 20 61  |of two tables, a|
000012e0  6e 64 20 63 61 6e 20 64  65 63 6f 64 65 20 74 6f  |nd can decode to|
000012f0  20 61 20 73 69 6e 67 6c  65 0d 0a 62 79 74 65 2c  | a single..byte,|
00001300  20 61 20 73 74 72 69 6e  67 20 6f 66 20 62 79 74  | a string of byt|
00001310  65 73 2c 20 6f 72 20 61  20 63 6f 6d 6d 61 6e 64  |es, or a command|
00001320  2e 20 49 6e 20 74 68 65  20 66 69 72 73 74 20 69  |. In the first i|
00001330  6e 73 74 61 6e 63 65 2c  20 74 68 65 20 73 69 6e  |nstance, the sin|
00001340  67 6c 65 0d 0a 64 65 63  6f 64 65 64 20 62 79 74  |gle..decoded byt|
00001350  65 20 69 73 20 73 65 6e  74 20 74 6f 20 74 68 65  |e is sent to the|
00001360  20 6f 75 74 70 75 74 20  66 69 6c 65 2e 20 49 6e  | output file. In|
00001370  20 74 68 65 20 73 65 63  6f 6e 64 20 63 61 73 65  | the second case|
00001380  20 61 20 73 69 6e 67 6c  65 20 69 6e 70 75 74 0d  | a single input.|
00001390  0a 62 79 74 65 20 63 61  6e 20 64 65 63 6f 64 65  |.byte can decode|
000013a0  20 74 6f 20 61 20 73 74  72 69 6e 67 20 6f 66 20  | to a string of |
000013b0  62 79 74 65 73 20 28 75  70 20 74 6f 20 32 35 36  |bytes (up to 256|
000013c0  20 6f 66 20 74 68 65 6d  21 29 2c 20 61 6e 64 20  | of them!), and |
000013d0  65 61 63 68 20 6f 6e 65  20 69 73 0d 0a 73 65 6e  |each one is..sen|
000013e0  74 20 74 6f 20 74 68 65  20 6f 75 74 70 75 74 20  |t to the output |
000013f0  66 69 6c 65 2e 20 49 6e  20 74 68 69 73 20 77 61  |file. In this wa|
00001400  79 2c 20 61 20 73 69 6e  67 6c 65 20 74 72 61 6e  |y, a single tran|
00001410  73 6d 69 74 74 65 64 20  62 79 74 65 20 63 61 6e  |smitted byte can|
00001420  0d 0a 72 65 70 72 65 73  65 6e 74 20 73 65 76 65  |..represent seve|
00001430  72 61 6c 20 62 79 74 65  73 20 6f 66 20 74 68 65  |ral bytes of the|
00001440  20 66 69 6e 61 6c 20 66  69 6c 65 2e 20 49 6e 20  | final file. In |
00001450  74 68 65 20 74 68 69 72  64 20 69 6e 73 74 61 6e  |the third instan|
00001460  63 65 2c 20 61 0d 0a 70  72 65 64 65 66 69 6e 65  |ce, a..predefine|
00001470  64 20 72 6f 75 74 69 6e  65 20 63 61 6e 20 62 65  |d routine can be|
00001480  20 65 6e 67 61 67 65 64  20 74 6f 20 70 65 72 66  | engaged to perf|
00001490  6f 72 6d 20 61 6e 79 20  6f 6e 65 20 6f 66 20 61  |orm any one of a|
000014a0  20 76 61 72 69 65 74 79  20 6f 66 0d 0a 74 61 73  | variety of..tas|
000014b0  6b 73 2e 20 54 68 69 73  20 64 6f 65 73 20 6e 6f  |ks. This does no|
000014c0  74 20 6e 65 63 65 73 73  61 72 69 6c 79 20 72 65  |t necessarily re|
000014d0  73 75 6c 74 20 69 6e 20  61 6e 79 74 68 69 6e 67  |sult in anything|
000014e0  20 61 74 20 61 6c 6c 20  62 65 69 6e 67 20 73 65  | at all being se|
000014f0  6e 74 20 74 6f 0d 0a 74  68 65 20 6f 75 74 70 75  |nt to..the outpu|
00001500  74 20 66 69 6c 65 21 0d  0a 0d 0a 0d 0a 0d 0a 0d  |t file!.........|
00001510  0a 0d 0a 0d 0a 0d 0a 20  20 20 20 20 20 20 20 20  |.......         |
00001520  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001530  20 20 20 20 20 20 20 20  20 50 61 67 65 20 32 0d  |         Page 2.|
00001540  0a 0d 0a 0d 0a 0d 0a 0d  0a 0d 0a 0d 0a 0d 0a 0d  |................|
00001550  0a 49 6e 74 65 72 61 63  74 69 76 65 20 70 72 6f  |.Interactive pro|
00001560  67 72 61 6d 6d 69 6e 67  20 20 20 20 20 20 20 20  |gramming        |
00001570  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001580  20 20 20 20 20 20 20 20  20 20 4a 2e 4a 2e 42 72  |          J.J.Br|
00001590  61 79 73 68 61 77 20 31  39 38 37 0d 0a 0d 0a 0d  |ayshaw 1987.....|
000015a0  0a 0d 0a 0d 0a 54 68 65  20 74 77 6f 20 64 69 66  |.....The two dif|
000015b0  66 65 72 65 6e 74 20 6c  6f 6f 6b 2d 75 70 20 74  |ferent look-up t|
000015c0  61 62 6c 65 73 20 61 72  65 20 6b 6e 6f 77 6e 20  |ables are known |
000015d0  61 73 20 74 68 65 20 27  6c 6f 6e 65 27 20 74 61  |as the 'lone' ta|
000015e0  62 6c 65 20 61 6e 64 20  74 68 65 0d 0a 27 65 73  |ble and the..'es|
000015f0  63 61 70 65 64 27 20 74  61 62 6c 65 2e 20 45 61  |caped' table. Ea|
00001600  63 68 20 62 79 74 65 20  69 73 20 6c 6f 6f 6b 65  |ch byte is looke|
00001610  64 20 75 70 20 69 6e 20  74 68 65 20 6c 6f 6e 65  |d up in the lone|
00001620  20 74 61 62 6c 65 20 75  6e 6c 65 73 73 20 74 68  | table unless th|
00001630  65 0d 0a 64 65 63 6f 64  65 72 20 69 73 20 74 6f  |e..decoder is to|
00001640  6c 64 20 6f 74 68 65 72  77 69 73 65 2e 0d 0a 0d  |ld otherwise....|
00001650  0a 54 68 65 20 52 54 46  20 70 72 6f 74 6f 63 6f  |.The RTF protoco|
00001660  6c 20 61 73 73 75 6d 65  73 20 74 68 65 20 69 6e  |l assumes the in|
00001670  63 6f 6d 69 6e 67 20 64  61 74 61 20 69 73 20 69  |coming data is i|
00001680  6e 20 6e 6f 72 6d 61 6c  20 38 2d 62 69 74 20 6d  |n normal 8-bit m|
00001690  6f 64 65 2e 20 41 73 20  77 65 0d 0a 68 61 76 65  |ode. As we..have|
000016a0  20 73 65 65 6e 2c 20 74  68 65 20 64 61 74 61 20  | seen, the data |
000016b0  73 65 6e 74 20 62 79 20  43 45 45 46 41 58 20 69  |sent by CEEFAX i|
000016c0  73 20 67 65 6e 65 72 61  6c 6c 79 20 69 6e 20 37  |s generally in 7|
000016d0  2d 62 69 74 20 66 6f 72  6d 2e 20 53 6f 20 74 68  |-bit form. So th|
000016e0  65 0d 0a 66 69 72 73 74  20 70 61 72 74 20 6f 66  |e..first part of|
000016f0  20 6d 6f 73 74 20 74 65  6c 65 73 6f 66 74 77 61  | most telesoftwa|
00001700  72 65 20 66 69 6c 65 73  20 69 73 20 61 20 22 7c  |re files is a "||
00001710  22 20 66 6f 6c 6c 6f 77  65 64 20 62 79 20 61 20  |" followed by a |
00001720  22 42 22 2e 20 54 68 65  20 22 7c 22 0d 0a 63 68  |"B". The "|"..ch|
00001730  61 72 61 63 74 65 72 20  28 64 6f 75 62 6c 65 20  |aracter (double |
00001740  76 65 72 74 69 63 61 6c  20 62 61 72 20 69 6e 20  |vertical bar in |
00001750  4d 4f 44 45 20 37 29 20  64 65 63 6f 64 65 73 20  |MODE 7) decodes |
00001760  74 6f 20 61 6e 20 69 6e  73 74 72 75 63 74 69 6f  |to an instructio|
00001770  6e 2e 20 54 68 69 73 0d  0a 69 6e 73 74 72 75 63  |n. This..instruc|
00001780  74 69 6f 6e 20 74 65 6c  6c 73 20 74 68 65 20 64  |tion tells the d|
00001790  65 63 6f 64 65 72 20 74  6f 20 75 73 65 20 74 68  |ecoder to use th|
000017a0  65 20 27 65 73 63 61 70  65 64 27 20 64 65 63 6f  |e 'escaped' deco|
000017b0  64 69 6e 67 20 74 61 62  6c 65 20 69 6e 73 74 65  |ding table inste|
000017c0  61 64 0d 0a 6f 66 20 74  68 65 20 27 6c 6f 6e 65  |ad..of the 'lone|
000017d0  27 20 74 61 62 6c 65 20  66 6f 72 20 74 68 65 20  |' table for the |
000017e0  6e 65 78 74 20 62 79 74  65 20 6f 6e 6c 79 2e 20  |next byte only. |
000017f0  49 6e 20 74 68 69 73 20  63 61 73 65 2c 20 74 68  |In this case, th|
00001800  65 20 6e 65 78 74 20 62  79 74 65 20 69 73 0d 0a  |e next byte is..|
00001810  22 42 22 20 28 26 43 32  29 20 77 68 69 63 68 20  |"B" (&C2) which |
00001820  64 65 63 6f 64 65 73 20  28 69 6e 20 74 68 65 20  |decodes (in the |
00001830  65 73 63 61 70 65 64 20  74 61 62 6c 65 29 20 74  |escaped table) t|
00001840  6f 20 61 6e 6f 74 68 65  72 20 63 6f 6d 6d 61 6e  |o another comman|
00001850  64 20 2d 20 74 6f 0d 0a  63 68 61 6e 67 65 20 74  |d - to..change t|
00001860  68 65 20 63 6f 6e 74 65  6e 74 73 20 6f 66 20 74  |he contents of t|
00001870  68 65 20 6c 6f 6f 6b 2d  75 70 20 74 61 62 6c 65  |he look-up table|
00001880  20 74 6f 20 61 20 70 72  65 64 65 66 69 6e 65 64  | to a predefined|
00001890  20 64 65 63 6f 64 69 6e  67 20 70 61 74 74 65 72  | decoding patter|
000018a0  6e 0d 0a 66 6f 72 20 37  2d 62 69 74 20 64 61 74  |n..for 7-bit dat|
000018b0  61 2e 20 53 6f 20 61 20  22 7c 42 22 20 69 6e 20  |a. So a "|B" in |
000018c0  74 68 65 20 69 6e 70 75  74 20 73 74 72 65 61 6d  |the input stream|
000018d0  20 74 65 6c 6c 73 20 74  68 65 20 64 65 63 6f 64  | tells the decod|
000018e0  65 72 20 74 68 65 20 66  69 6c 65 0d 0a 69 73 20  |er the file..is |
000018f0  66 6f 72 6d 61 74 74 65  64 20 69 6e 20 37 2d 62  |formatted in 7-b|
00001900  69 74 20 6d 6f 64 65 2c  20 61 6e 64 20 64 65 63  |it mode, and dec|
00001910  6f 64 69 6e 67 20 73 68  6f 75 6c 64 20 74 61 6b  |oding should tak|
00001920  65 20 70 6c 61 63 65 20  61 63 63 6f 72 64 69 6e  |e place accordin|
00001930  67 6c 79 2e 0d 0a 0d 0a  53 6f 2c 20 67 65 6e 65  |gly.....So, gene|
00001940  72 61 6c 6c 79 2c 20 61  6e 79 20 62 79 74 65 20  |rally, any byte |
00001950  69 6e 20 74 68 65 20 69  6e 70 75 74 20 73 74 72  |in the input str|
00001960  65 61 6d 20 69 6d 6d 65  64 69 61 74 65 6c 79 20  |eam immediately |
00001970  66 6f 6c 6c 6f 77 69 6e  67 20 61 20 22 7c 22 0d  |following a "|".|
00001980  0a 73 79 6d 62 6f 6c 20  69 73 20 69 6e 74 65 72  |.symbol is inter|
00001990  70 72 65 74 65 64 20 75  73 69 6e 67 20 74 68 65  |preted using the|
000019a0  20 27 65 73 63 61 70 65  64 27 20 74 61 62 6c 65  | 'escaped' table|
000019b0  2c 20 6f 74 68 65 72 77  69 73 65 20 74 68 65 20  |, otherwise the |
000019c0  27 6c 6f 6e 65 27 0d 0a  74 61 62 6c 65 20 69 73  |'lone'..table is|
000019d0  20 75 73 65 64 2e 0d 0a  0d 0a 54 68 65 20 52 54  | used.....The RT|
000019e0  46 20 70 72 6f 74 6f 63  6f 6c 20 61 6c 6c 6f 77  |F protocol allow|
000019f0  73 20 75 73 20 74 6f 20  63 68 61 6e 67 65 20 74  |s us to change t|
00001a00  68 65 20 65 6e 74 72 69  65 73 20 69 6e 20 65 69  |he entries in ei|
00001a10  74 68 65 72 20 64 65 63  6f 64 69 6e 67 20 74 61  |ther decoding ta|
00001a20  62 6c 65 2e 0d 0a 54 68  65 20 63 6f 6d 6d 61 6e  |ble...The comman|
00001a30  64 20 74 6f 20 64 6f 20  74 68 69 73 20 69 73 20  |d to do this is |
00001a40  73 65 6e 74 20 77 69 74  68 20 74 68 65 20 74 72  |sent with the tr|
00001a50  61 6e 73 6d 69 74 74 65  64 20 66 69 6c 65 2e 20  |ansmitted file. |
00001a60  43 6f 64 65 73 20 22 71  22 2c 20 22 72 22 2c 0d  |Codes "q", "r",.|
00001a70  0a 22 73 22 20 61 6e 64  20 22 74 22 20 69 6e 20  |."s" and "t" in |
00001a80  74 68 65 20 65 73 63 61  70 65 64 20 74 61 62 6c  |the escaped tabl|
00001a90  65 20 74 65 6c 6c 20 74  68 65 20 64 65 63 6f 64  |e tell the decod|
00001aa0  65 72 20 74 6f 20 72 65  73 65 74 20 74 68 65 20  |er to reset the |
00001ab0  6d 65 61 6e 69 6e 67 20  6f 66 0d 0a 61 20 70 61  |meaning of..a pa|
00001ac0  72 74 69 63 75 6c 61 72  20 63 6f 64 65 20 69 6e  |rticular code in|
00001ad0  20 6f 6e 65 20 6f 66 20  74 68 65 20 74 77 6f 20  | one of the two |
00001ae0  74 61 62 6c 65 73 2e 20  46 6f 72 20 65 78 61 6d  |tables. For exam|
00001af0  70 6c 65 2c 20 74 68 65  20 73 65 71 75 65 6e 63  |ple, the sequenc|
00001b00  65 3a 0d 0a 0d 0a 20 20  20 20 20 20 20 20 20 20  |e:....          |
00001b10  20 20 20 20 20 20 20 20  20 20 7c 73 5a 38 4e 65  |          |sZ8Ne|
00001b20  77 20 74 65 78 74 0d 0a  0d 0a 77 69 6c 6c 20 72  |w text....will r|
00001b30  65 73 65 74 20 74 68 65  20 65 6e 74 72 79 20 66  |eset the entry f|
00001b40  6f 72 20 22 5a 22 20 69  6e 20 74 68 65 20 6c 6f  |or "Z" in the lo|
00001b50  6e 65 20 74 61 62 6c 65  20 74 6f 20 62 65 20 22  |ne table to be "|
00001b60  4e 65 77 20 74 65 78 74  22 2e 0d 0a 49 6e 74 65  |New text"...Inte|
00001b70  72 70 72 65 74 69 6e 67  20 65 61 63 68 20 62 79  |rpreting each by|
00001b80  74 65 20 69 6e 20 74 68  65 20 61 62 6f 76 65 20  |te in the above |
00001b90  6c 69 6e 65 3a 0d 0a 0d  0a 20 7c 20 20 74 65 6c  |line:.... |  tel|
00001ba0  6c 73 20 74 68 65 20 64  65 63 6f 64 65 72 20 74  |ls the decoder t|
00001bb0  6f 20 6c 6f 6f 6b 20 75  70 20 74 68 65 20 6e 65  |o look up the ne|
00001bc0  78 74 20 62 79 74 65 20  69 6e 20 74 68 65 20 65  |xt byte in the e|
00001bd0  73 63 61 70 65 64 20 74  61 62 6c 65 0d 0a 20 73  |scaped table.. s|
00001be0  20 20 69 6e 20 74 68 65  20 65 73 63 61 70 65 64  |  in the escaped|
00001bf0  20 74 61 62 6c 65 20 64  65 63 6f 64 65 73 20 74  | table decodes t|
00001c00  6f 20 61 20 63 6f 6d 6d  61 6e 64 20 74 6f 20 72  |o a command to r|
00001c10  65 73 65 74 20 74 68 65  20 6d 65 61 6e 69 6e 67  |eset the meaning|
00001c20  20 6f 66 20 74 68 65 0d  0a 20 20 20 20 6e 65 78  | of the..    nex|
00001c30  74 20 62 79 74 65 20 74  6f 20 62 65 20 74 68 65  |t byte to be the|
00001c40  20 66 6f 6c 6c 6f 77 69  6e 67 20 73 74 72 69 6e  | following strin|
00001c50  67 0d 0a 20 5a 20 20 69  73 20 74 68 65 20 63 68  |g.. Z  is the ch|
00001c60  61 72 61 63 74 65 72 20  77 68 6f 73 65 20 65 6e  |aracter whose en|
00001c70  74 72 79 20 69 73 20 74  6f 20 62 65 20 72 65 64  |try is to be red|
00001c80  65 66 69 6e 65 64 0d 0a  20 38 20 20 69 73 20 68  |efined.. 8  is h|
00001c90  6f 77 20 6c 6f 6e 67 20  74 68 65 20 6e 65 77 20  |ow long the new |
00001ca0  64 65 66 69 6e 69 74 69  6f 6e 20 73 74 72 69 6e  |definition strin|
00001cb0  67 20 69 73 20 74 6f 20  62 65 0d 0a 20 4e 20 20  |g is to be.. N  |
00001cc0  20 7d 20 54 68 65 20 65  69 67 68 74 0d 0a 20 65  | } The eight.. e|
00001cd0  20 20 20 7d 20 62 79 74  65 73 20 74 68 61 74 0d  |   } bytes that.|
00001ce0  0a 20 77 20 20 20 7d 20  66 6f 72 6d 20 74 68 65  |. w   } form the|
00001cf0  0d 0a 22 20 22 20 20 7d  20 6e 65 77 20 64 65 66  |.." "  } new def|
00001d00  69 6e 69 74 69 6f 6e 0d  0a 20 74 20 20 20 7d 20  |inition.. t   } |
00001d10  6f 66 20 74 68 65 0d 0a  20 65 20 20 20 7d 20 63  |of the.. e   } c|
00001d20  68 61 72 61 63 74 65 72  20 22 5a 22 0d 0a 20 78  |haracter "Z".. x|
00001d30  20 20 20 7d 20 69 6e 20  74 68 65 20 22 6c 6f 6e  |   } in the "lon|
00001d40  65 22 0d 0a 20 74 20 20  20 7d 20 64 65 63 6f 64  |e".. t   } decod|
00001d50  69 6e 67 20 74 61 62 6c  65 0d 0a 0d 0a 46 6f 6c  |ing table....Fol|
00001d60  6c 6f 77 69 6e 67 20 74  68 69 73 20 63 6f 6d 6d  |lowing this comm|
00001d70  61 6e 64 2c 20 65 76 65  72 79 20 74 69 6d 65 20  |and, every time |
00001d80  74 68 65 20 63 68 61 72  61 63 74 65 72 20 22 5a  |the character "Z|
00001d90  22 20 69 73 20 72 65 63  65 69 76 65 64 20 69 6e  |" is received in|
00001da0  20 74 68 65 0d 0a 69 6e  70 75 74 20 73 74 72 65  | the..input stre|
00001db0  61 6d 2c 20 74 68 65 20  73 74 72 69 6e 67 20 22  |am, the string "|
00001dc0  4e 65 77 20 74 65 78 74  22 20 77 69 6c 6c 20 62  |New text" will b|
00001dd0  65 20 73 65 6e 74 20 74  6f 20 74 68 65 20 6f 75  |e sent to the ou|
00001de0  74 70 75 74 20 66 69 6c  65 2e 0d 0a 0d 0a 0d 0a  |tput file.......|
00001df0  0d 0a 0d 0a 0d 0a 0d 0a  0d 0a 20 20 20 20 20 20  |..........      |
00001e00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001e10  20 20 20 20 20 20 20 20  20 20 20 20 50 61 67 65  |            Page|
00001e20  20 33 0d 0a 0d 0a 0d 0a  0d 0a 0d 0a 0d 0a 0d 0a  | 3..............|
00001e30  0d 0a 0d 0a 49 6e 74 65  72 61 63 74 69 76 65 20  |....Interactive |
00001e40  70 72 6f 67 72 61 6d 6d  69 6e 67 20 20 20 20 20  |programming     |
00001e50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001e60  20 20 20 20 20 20 20 20  20 20 20 20 20 4a 2e 4a  |             J.J|
00001e70  2e 42 72 61 79 73 68 61  77 20 31 39 38 37 0d 0a  |.Brayshaw 1987..|
00001e80  0d 0a 0d 0a 0d 0a 0d 0a  4d 6f 73 74 20 6f 66 20  |........Most of |
00001e90  74 68 65 20 65 6e 74 72  69 65 73 20 69 6e 20 74  |the entries in t|
00001ea0  68 65 20 4c 6f 6e 65 20  64 65 63 6f 64 69 6e 67  |he Lone decoding|
00001eb0  20 74 61 62 6c 65 20 77  69 6c 6c 20 64 65 63 6f  | table will deco|
00001ec0  64 65 20 74 6f 20 37 2d  62 69 74 0d 0a 76 65 72  |de to 7-bit..ver|
00001ed0  73 69 6f 6e 73 20 6f 66  20 74 68 65 6d 73 65 6c  |sions of themsel|
00001ee0  76 65 73 2e 20 46 6f 72  20 65 78 61 6d 70 6c 65  |ves. For example|
00001ef0  2c 20 69 66 20 61 20 63  6f 64 65 20 26 43 31 20  |, if a code &C1 |
00001f00  69 73 20 72 65 63 65 69  76 65 64 20 28 63 68 61  |is received (cha|
00001f10  72 61 63 74 65 72 0d 0a  22 41 22 29 2c 20 74 68  |racter.."A"), th|
00001f20  65 20 6c 6f 6e 65 20 64  65 63 6f 64 69 6e 67 20  |e lone decoding |
00001f30  74 61 62 6c 65 20 77 69  6c 6c 20 72 65 64 65 66  |table will redef|
00001f40  69 6e 65 20 74 68 69 73  20 61 73 20 63 6f 64 65  |ine this as code|
00001f50  20 26 34 31 20 28 74 68  65 20 37 2d 62 69 74 0d  | &41 (the 7-bit.|
00001f60  0a 76 65 72 73 69 6f 6e  20 6f 66 20 26 43 31 29  |.version of &C1)|
00001f70  20 77 68 69 63 68 20 69  73 20 61 6c 73 6f 20 63  | which is also c|
00001f80  68 61 72 61 63 74 65 72  20 22 41 22 20 28 70 72  |haracter "A" (pr|
00001f90  6f 76 69 64 65 64 20 74  68 61 74 20 74 68 69 73  |ovided that this|
00001fa0  20 65 6e 74 72 79 20 68  61 73 0d 0a 6e 6f 74 20  | entry has..not |
00001fb0  70 72 65 76 69 6f 75 73  6c 79 20 62 65 65 6e 20  |previously been |
00001fc0  72 65 64 65 66 69 6e 65  64 20 77 69 74 68 69 6e  |redefined within|
00001fd0  20 74 68 65 20 66 69 6c  65 29 2e 20 48 6f 77 65  | the file). Howe|
00001fe0  76 65 72 2c 20 73 6f 6d  65 20 63 6f 64 65 73 20  |ver, some codes |
00001ff0  61 72 65 0d 0a 73 65 74  20 74 6f 20 64 65 63 6f  |are..set to deco|
00002000  64 65 20 74 6f 20 63 6f  6d 6d 61 6e 64 73 20 2d  |de to commands -|
00002010  20 69 6e 20 70 61 72 74  69 63 75 6c 61 72 2c 20  | in particular, |
00002020  63 6f 64 65 20 26 36 30  20 28 75 6e 64 65 72 73  |code &60 (unders|
00002030  63 6f 72 65 20 63 68 61  72 61 63 74 65 72 29 0d  |core character).|
00002040  0a 64 65 63 6f 64 65 73  20 74 6f 20 74 68 65 20  |.decodes to the |
00002050  22 72 61 69 73 65 20 6e  65 78 74 20 62 79 74 65  |"raise next byte|
00002060  22 20 63 6f 6d 6d 61 6e  64 2e 20 49 6e 20 74 68  |" command. In th|
00002070  69 73 20 63 61 73 65 2c  20 74 68 65 20 66 6f 6c  |is case, the fol|
00002080  6c 6f 77 69 6e 67 20 62  79 74 65 0d 0a 69 73 20  |lowing byte..is |
00002090  72 65 63 65 69 76 65 64  2c 20 73 74 72 69 70 70  |received, stripp|
000020a0  65 64 20 6f 66 20 70 61  72 69 74 79 20 74 68 65  |ed of parity the|
000020b0  6e 20 61 64 64 65 64 20  74 6f 20 38 38 2e 20 54  |n added to 88. T|
000020c0  68 65 20 72 65 73 75 6c  74 20 69 73 20 73 65 6e  |he result is sen|
000020d0  74 20 74 6f 0d 0a 74 68  65 20 6f 75 74 70 75 74  |t to..the output|
000020e0  20 66 69 6c 65 2e 20 53  69 6d 69 6c 61 72 6c 79  | file. Similarly|
000020f0  2c 20 63 6f 64 65 20 26  37 45 20 28 64 69 76 69  |, code &7E (divi|
00002100  64 65 20 73 69 67 6e 20  6f 72 20 74 69 6c 64 65  |de sign or tilde|
00002110  29 20 64 65 63 6f 64 65  73 20 74 6f 20 74 68 65  |) decodes to the|
00002120  0d 0a 22 6c 6f 77 65 72  20 6e 65 78 74 20 62 79  |.."lower next by|
00002130  74 65 22 20 63 6f 6d 6d  61 6e 64 2c 20 69 6e 20  |te" command, in |
00002140  77 68 69 63 68 20 74 68  65 20 6e 65 78 74 20 62  |which the next b|
00002150  79 74 65 20 72 65 63 65  69 76 65 64 20 69 73 20  |yte received is |
00002160  73 74 72 69 70 70 65 64  20 6f 66 0d 0a 70 61 72  |stripped of..par|
00002170  69 74 79 20 61 6e 64 20  72 65 64 75 63 65 64 20  |ity and reduced |
00002180  62 79 20 38 38 2e 20 54  68 65 20 72 65 73 75 6c  |by 88. The resul|
00002190  74 20 28 4d 4f 44 20 32  35 36 29 20 69 73 20 73  |t (MOD 256) is s|
000021a0  65 6e 74 20 74 6f 20 74  68 65 20 6f 75 74 70 75  |ent to the outpu|
000021b0  74 20 66 69 6c 65 2e 0d  0a 46 6f 72 20 65 78 61  |t file...For exa|
000021c0  6d 70 6c 65 2c 20 74 68  65 20 73 65 71 75 65 6e  |mple, the sequen|
000021d0  63 65 3a 0d 0a 0d 0a 20  20 20 20 20 20 20 20 20  |ce:....         |
000021e0  20 20 20 20 20 20 20 20  20 20 7e 41 0d 0a 0d 0a  |          ~A....|
000021f0  64 65 63 6f 64 65 73 20  74 6f 3a 0d 0a 0d 0a 20  |decodes to:.... |
00002200  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 28  |               (|
00002210  28 41 53 43 22 41 22 29  20 41 4e 44 26 37 46 29  |(ASC"A") AND&7F)|
00002220  2d 38 38 0d 0a 0d 0a 28  41 53 43 22 41 22 29 3d  |-88....(ASC"A")=|
00002230  26 43 31 2e 20 53 74 72  69 70 20 74 68 65 20 70  |&C1. Strip the p|
00002240  61 72 69 74 79 20 77 69  74 68 20 22 41 4e 44 20  |arity with "AND |
00002250  26 37 46 22 20 74 6f 20  67 69 76 65 20 26 34 31  |&7F" to give &41|
00002260  2e 20 41 64 64 20 38 38  20 61 73 0d 0a 69 6e 73  |. Add 88 as..ins|
00002270  74 72 75 63 74 65 64 20  62 79 20 74 68 65 20 7e  |tructed by the ~|
00002280  20 63 68 61 72 61 63 74  65 72 20 74 6f 20 67 69  | character to gi|
00002290  76 65 20 26 39 39 0d 0a  0d 0a 49 6e 20 74 68 69  |ve &99....In thi|
000022a0  73 20 77 61 79 2c 20 61  6e 79 20 6f 66 20 74 68  |s way, any of th|
000022b0  65 20 63 6f 64 65 73 20  30 20 74 6f 20 32 35 35  |e codes 0 to 255|
000022c0  20 63 61 6e 20 62 65 20  74 72 61 6e 73 6d 69 74  | can be transmit|
000022d0  74 65 64 2e 0d 0a 0d 0a  54 68 65 20 52 54 46 20  |ted.....The RTF |
000022e0  70 72 6f 74 6f 63 6f 6c  73 20 61 6c 6c 6f 77 20  |protocols allow |
000022f0  66 6f 72 20 76 65 72 79  20 65 66 66 69 63 69 65  |for very efficie|
00002300  6e 74 20 64 61 74 61 20  63 6f 6d 70 72 65 73 73  |nt data compress|
00002310  69 6f 6e 20 74 65 63 68  6e 69 71 75 65 73 20 74  |ion techniques t|
00002320  6f 0d 0a 62 65 20 70 65  72 66 6f 72 6d 65 64 2e  |o..be performed.|
00002330  20 55 73 69 6e 67 20 72  65 64 65 66 69 6e 69 74  | Using redefinit|
00002340  69 6f 6e 73 20 77 69 73  65 6c 79 20 68 61 73 20  |ions wisely has |
00002350  72 65 73 75 6c 74 65 64  20 74 68 65 20 72 65 64  |resulted the red|
00002360  75 63 74 69 6f 6e 20 6f  66 20 74 68 65 0d 0a 6c  |uction of the..l|
00002370  65 6e 67 74 68 20 6f 66  20 73 6f 6d 65 20 74 72  |ength of some tr|
00002380  61 6e 73 6d 69 74 74 65  64 20 66 69 6c 65 73 20  |ansmitted files |
00002390  62 79 20 61 73 20 6d 75  63 68 20 61 73 20 35 30  |by as much as 50|
000023a0  25 20 6f 76 65 72 20 74  68 65 20 6e 6f 6e 2d 63  |% over the non-c|
000023b0  6f 6d 70 72 65 73 73 65  64 0d 0a 76 65 72 73 69  |ompressed..versi|
000023c0  6f 6e 2e 0d 0a 0d 0a 54  68 65 72 65 20 61 72 65  |on.....There are|
000023d0  2c 20 6f 66 20 63 6f 75  72 73 65 2c 20 6d 61 6e  |, of course, man|
000023e0  79 20 6f 74 68 65 72 20  66 65 61 74 75 72 65 73  |y other features|
000023f0  20 6f 66 20 74 68 65 20  52 54 46 20 70 72 6f 74  | of the RTF prot|
00002400  6f 63 6f 6c 2c 20 69 6e  63 6c 75 64 69 6e 67 0d  |ocol, including.|
00002410  0a 74 68 65 20 66 61 63  69 6c 69 74 79 20 66 6f  |.the facility fo|
00002420  72 20 66 69 6c 65 73 20  74 6f 20 62 65 20 73 70  |r files to be sp|
00002430  6c 69 74 20 6f 76 65 72  20 6d 6f 72 65 20 74 68  |lit over more th|
00002440  61 6e 20 6f 6e 65 20 43  45 45 46 41 58 20 70 61  |an one CEEFAX pa|
00002450  67 65 2c 20 6f 72 20 74  6f 0d 0a 70 75 74 20 6d  |ge, or to..put m|
00002460  6f 72 65 20 74 68 61 6e  20 6f 6e 65 20 66 69 6c  |ore than one fil|
00002470  65 20 6f 6e 20 61 20 73  69 6e 67 6c 65 20 43 45  |e on a single CE|
00002480  45 46 41 58 20 70 61 67  65 20 6f 72 20 73 75 62  |EFAX page or sub|
00002490  2d 70 61 67 65 20 6e 75  6d 62 65 72 2e 0d 0a 43  |-page number...C|
000024a0  6f 6d 6d 65 6e 74 73 20  63 61 6e 20 62 65 20 69  |omments can be i|
000024b0  6e 63 6c 75 64 65 64 20  69 6e 20 74 68 65 20 66  |ncluded in the f|
000024c0  6f 72 6d 61 74 74 65 64  20 74 65 78 74 20 28 74  |ormatted text (t|
000024d0  6f 20 62 65 20 64 69 73  70 6c 61 79 65 64 20 6f  |o be displayed o|
000024e0  6e 20 73 63 72 65 65 6e  0d 0a 64 75 72 69 6e 67  |n screen..during|
000024f0  20 74 68 65 20 64 6f 77  6e 6c 6f 61 64 69 6e 67  | the downloading|
00002500  20 70 72 6f 63 65 73 73  29 20 61 6e 64 20 6d 75  | process) and mu|
00002510  63 68 20 6d 6f 72 65 2e  0d 0a 0d 0a 54 68 65 20  |ch more.....The |
00002520  52 54 46 20 70 72 6f 74  6f 63 6f 6c 20 69 73 20  |RTF protocol is |
00002530  76 65 72 79 20 66 6c 65  78 69 62 6c 65 2e 20 45  |very flexible. E|
00002540  76 65 6e 20 74 68 65 20  63 6f 6d 6d 61 6e 64 73  |ven the commands|
00002550  20 74 68 65 6d 73 65 6c  76 65 73 20 63 61 6e 20  | themselves can |
00002560  62 65 0d 0a 72 65 61 6c  6c 6f 63 61 74 65 64 20  |be..reallocated |
00002570  74 6f 20 64 69 66 66 65  72 65 6e 74 20 63 6f 64  |to different cod|
00002580  65 73 20 69 66 20 72 65  71 75 69 72 65 64 2e 0d  |es if required..|
00002590  0a 0d 0a 0d 0a 0d 0a 0d  0a 0d 0a 0d 0a 0d 0a 0d  |................|
000025a0  0a 0d 0a 0d 0a 0d 0a 0d  0a 0d 0a 0d 0a 0d 0a 20  |............... |
000025b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000025d0  20 50 61 67 65 20 34 0d  0a 0d 0a 0d 0a 0d 0a 0d  | Page 4.........|
000025e0  0a 0d 0a 0d 0a 0d 0a 0d  0a 49 6e 74 65 72 61 63  |.........Interac|
000025f0  74 69 76 65 20 70 72 6f  67 72 61 6d 6d 69 6e 67  |tive programming|
00002600  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002620  20 20 4a 2e 4a 2e 42 72  61 79 73 68 61 77 20 31  |  J.J.Brayshaw 1|
00002630  39 38 37 0d 0a 0d 0a 0d  0a 0d 0a 0d 0a 54 68 65  |987..........The|
00002640  20 52 54 46 20 64 65 63  6f 64 69 6e 67 20 61 6c  | RTF decoding al|
00002650  67 6f 72 69 74 68 6d 3a  0d 0a 0d 0a 0d 0a 20 20  |gorithm:......  |
00002660  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 53  |               S|
00002670  54 41 52 54 0d 0a 20 20  20 20 20 20 20 20 20 20  |TART..          |
00002680  20 20 20 20 20 20 20 20  20 7c 0d 0a 20 20 2b 2d  |         |..  +-|
00002690  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |---------------+|
000026a0  0d 0a 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |..  |           |
000026b0  20 20 20 20 20 7c 0d 0a  20 20 7c 20 20 20 20 20  |     |..  |     |
000026c0  20 20 20 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |   +------------|
000026d0  2d 2d 2d 2b 0d 0a 20 20  7c 20 20 20 20 20 20 20  |---+..  |       |
000026e0  20 7c 20 47 65 74 20 62  79 74 65 20 20 20 20 20  | | Get byte     |
000026f0  20 7c 0d 0a 20 20 7c 20  20 20 20 20 20 20 20 2b  | |..  |        +|
00002700  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |---------------+|
00002710  0d 0a 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |..  |           |
00002720  20 20 20 20 20 7c 0d 0a  20 20 7c 20 20 20 20 20  |     |..  |     |
00002730  20 20 20 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |   +------------|
00002740  2d 2d 2d 2b 0d 0a 20 20  7c 20 20 20 20 20 20 20  |---+..  |       |
00002750  20 7c 20 4c 6f 6f 6b 20  75 70 20 74 68 65 20 20  | | Look up the  |
00002760  20 7c 0d 0a 20 20 7c 20  20 20 20 20 20 20 20 7c  | |..  |        ||
00002770  20 6d 65 61 6e 69 6e 67  20 69 6e 20 74 68 65 7c  | meaning in the||
00002780  0d 0a 20 20 7c 20 20 20  20 20 20 20 20 7c 20 4c  |..  |        | L|
00002790  6f 6e 65 20 74 61 62 6c  65 20 20 20 20 7c 0d 0a  |one table    |..|
000027a0  20 20 7c 20 20 20 20 20  20 20 20 2b 2d 2d 2d 2d  |  |        +----|
000027b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2b 0d 0a 20 20  |-----------+..  |
000027c0  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
000027d0  20 20 7c 0d 0a 20 20 7c  20 20 20 20 20 20 20 20  |  |..  |        |
000027e0  20 20 20 20 20 20 20 20  2f 20 5c 20 20 20 20 20  |        / \     |
000027f0  20 20 20 20 20 20 2b 2d  2d 2d 2d 2d 2d 2b 20 20  |      +------+  |
00002800  20 20 20 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |   +------------|
00002810  2d 2d 2d 2d 2b 0d 0a 20  20 7c 20 20 20 20 20 20  |----+..  |      |
00002820  20 20 20 20 20 20 20 20  2f 69 73 20 69 74 5c 20  |        /is it\ |
00002830  20 20 59 45 53 20 20 20  7c 20 47 65 74 20 20 7c  |  YES   | Get  ||
00002840  20 20 20 20 20 7c 20 6c  6f 6f 6b 20 75 70 20 74  |     | look up t|
00002850  68 65 20 20 20 20 7c 0d  0a 20 20 7c 20 20 20 20  |he    |..  |    |
00002860  20 20 20 20 20 20 20 20  20 3c 45 73 63 61 70 65  |         <Escape|
00002870  20 3e 2d 2d 2d 2d 2d 2d  2d 2d 7c 20 6e 65 78 74  | >--------| next|
00002880  20 7c 2d 2d 2d 2d 2d 7c  20 6d 65 61 6e 69 6e 67  | |-----| meaning|
00002890  20 69 6e 20 74 68 65 20  7c 0d 0a 20 20 7c 20 20  | in the |..  |  |
000028a0  20 20 20 20 20 20 20 20  20 20 20 20 5c 20 20 3f  |            \  ?|
000028b0  20 20 2f 20 20 20 20 20  20 20 20 20 7c 20 62 79  |  /         | by|
000028c0  74 65 20 7c 20 20 20 20  20 7c 20 45 73 63 61 70  |te |     | Escap|
000028d0  65 64 20 74 61 62 6c 65  20 20 7c 0d 0a 20 20 7c  |ed table  |..  ||
000028e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000028f0  5c 20 2f 20 20 20 20 20  20 20 20 20 20 20 2b 2d  |\ /           +-|
00002900  2d 2d 2d 2d 2d 2b 20 20  20 20 20 2b 2d 2d 2d 2d  |-----+     +----|
00002910  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2b 0d 0a 20  |------------+.. |
00002920  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | |              |
00002930  4e 4f 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |NO |            |
00002940  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002950  20 20 20 20 20 20 7c 0d  0a 20 20 7c 20 20 20 20  |      |..  |    |
00002960  20 20 20 20 20 20 20 20  20 20 20 20 20 2b 2d 2d  |             +--|
00002970  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002990  2b 0d 0a 20 20 7c 20 20  20 20 20 20 20 20 20 20  |+..  |          |
000029a0  20 20 20 20 20 20 20 7c  0d 0a 20 20 7c 20 20 20  |       |..  |   |
000029b0  20 20 20 20 20 20 20 20  20 20 20 20 20 2f 20 5c  |             / \|
000029c0  0d 0a 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |..  |           |
000029d0  20 20 20 2f 69 73 20 69  74 5c 20 20 20 59 45 53  |   /is it\   YES|
000029e0  20 20 20 2b 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 0d 0a  |   +---------+..|
000029f0  20 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |  |             |
00002a00  3c 43 6f 6d 6d 61 6e 64  3e 2d 2d 2d 2d 2d 2d 2d  |<Command>-------|
00002a10  2d 7c 20 45 78 65 63 75  74 65 20 7c 2d 2d 2d 2d  |-| Execute |----|
00002a20  2d 2d 2d 2d 2d 2d 2d 2b  0d 0a 20 20 7c 20 20 20  |-------+..  |   |
00002a30  20 20 20 20 20 20 20 20  20 20 20 5c 20 20 3f 20  |           \  ? |
00002a40  20 2f 20 20 20 20 20 20  20 20 20 7c 20 63 6f 6d  | /         | com|
00002a50  6d 61 6e 64 20 7c 20 20  20 20 20 20 20 20 20 20  |mand |          |
00002a60  20 7c 0d 0a 20 20 7c 20  20 20 20 20 20 20 20 20  | |..  |         |
00002a70  20 20 20 20 20 20 20 5c  20 2f 20 20 20 20 20 20  |       \ /      |
00002a80  20 20 20 20 20 2b 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |     +---------+|
00002a90  20 20 20 20 20 20 20 20  20 20 2f 20 5c 0d 0a 20  |          / \.. |
00002aa0  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | |              |
00002ab0  4e 4f 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |NO |            |
00002ac0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002ad0  20 20 20 2f 20 45 6e 64  20 5c 20 20 59 45 53 0d  |   / End \  YES.|
00002ae0  0a 20 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |.  |            |
00002af0  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00002b00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002b10  20 20 20 20 3c 20 20 20  6f 66 20 20 3e 2d 2d 2d  |    <   of  >---|
00002b20  2d 2d 2b 0d 0a 20 20 7c  20 20 20 20 20 20 20 20  |--+..  |        |
00002b30  20 20 2b 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |  +-------------|
00002b40  2d 2b 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |-+              |
00002b50  20 20 20 20 20 20 20 20  20 5c 62 6c 6f 63 6b 2f  |         \block/|
00002b60  20 20 20 20 20 20 7c 0d  0a 20 20 7c 20 20 20 20  |      |..  |    |
00002b70  20 20 20 20 20 20 7c 20  53 65 6e 64 20 62 79 74  |      | Send byt|
00002b80  65 28 73 29 20 7c 20 20  20 20 20 20 20 20 20 20  |e(s) |          |
00002b90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 5c  |               \|
00002ba0  3f 2f 20 20 20 20 20 20  20 2f 20 5c 0d 0a 20 20  |?/       / \..  |
00002bb0  7c 20 20 20 20 20 20 20  20 20 20 7c 20 74 6f 20  ||          | to |
00002bc0  6f 75 74 70 75 74 20 20  20 20 7c 20 20 20 20 20  |output    |     |
00002bd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002be0  20 20 20 20 20 7c 20 20  20 20 20 20 2f 20 45 6e  |     |      / En|
00002bf0  64 20 5c 20 59 45 53 0d  0a 20 20 7c 20 20 20 20  |d \ YES..  |    |
00002c00  20 20 20 20 20 20 7c 20  66 69 6c 65 20 20 20 20  |      | file    |
00002c10  20 20 20 20 20 7c 20 20  20 20 20 20 20 20 20 20  |     |          |
00002c20  20 20 20 20 20 20 20 20  20 20 20 20 20 4e 4f 20  |             NO |
00002c30  7c 20 20 20 20 20 3c 6f  66 20 66 69 6c 65 3e 2d  ||     <of file>-|
00002c40  2d 2b 0d 0a 20 20 7c 20  20 20 20 20 20 20 20 20  |-+..  |         |
00002c50  20 2b 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | +--------------|
00002c60  2b 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |+               |
00002c70  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00002c80  20 20 5c 20 20 3f 20 20  2f 20 20 20 7c 0d 0a 20  |  \  ?  /   |.. |
00002c90  20 7c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | |              |
00002ca0  20 20 20 7c 20 20 20 20  20 20 20 20 20 20 20 20  |   |            |
00002cb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002cc0  20 20 20 20 20 20 7c 20  20 20 20 20 20 20 20 5c  |      |        \|
00002cd0  20 2f 20 20 20 20 20 7c  0d 0a 20 20 7c 20 20 20  | /     |..  |   |
00002ce0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |              | |
00002cf0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002d10  20 7c 20 20 20 20 20 20  4e 4f 20 7c 20 20 20 20  | |      NO |    |
00002d20  53 54 4f 50 0d 0a 20 20  7c 20 20 20 20 20 20 20  |STOP..  |       |
00002d30  20 20 20 20 20 20 20 20  20 20 7c 20 20 20 20 20  |          |     |
00002d40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002d50  20 20 20 20 20 20 20 20  20 20 20 20 20 7c 20 20  |             |  |
00002d60  20 20 20 20 20 20 20 7c  0d 0a 20 20 7c 20 20 20  |       |..  |   |
00002d70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7c 20  |              | |
00002d80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002da0  20 7c 20 20 20 20 2b 2d  2d 2d 2d 2d 2d 2d 2d 2d  | |    +---------|
00002db0  2d 2b 0d 0a 20 20 7c 20  20 20 20 20 20 20 20 20  |-+..  |         |
00002dc0  20 20 20 20 20 20 20 20  7c 20 20 20 20 20 20 20  |        |       |
00002dd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002de0  20 20 20 20 20 20 20 20  20 20 20 7c 20 20 20 20  |           |    |
00002df0  7c 20 47 65 74 20 6e 65  78 74 20 7c 0d 0a 20 20  || Get next |..  |
00002e00  7c 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ||               |
00002e10  20 20 7c 20 20 20 20 20  20 20 20 20 20 20 20 20  |  |             |
00002e20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002e30  20 20 20 20 20 7c 20 20  20 20 7c 20 62 6c 6f 63  |     |    | bloc|
00002e40  6b 20 20 20 20 7c 0d 0a  20 20 7c 20 20 20 20 20  |k    |..  |     |
00002e50  20 20 20 20 20 20 20 20  20 20 20 20 7c 20 20 20  |            |   |
00002e60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002e70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7c  |               ||
00002e80  20 20 20 20 2b 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2b  |    +----------+|
00002e90  0d 0a 20 20 7c 20 20 20  20 20 20 20 20 20 20 20  |..  |           |
00002ea0  20 20 20 20 20 20 7c 20  20 20 20 20 20 20 20 20  |      |         |
00002eb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002ec0  20 20 20 20 20 20 20 20  20 7c 20 20 20 20 20 20  |         |      |
00002ed0  20 20 20 7c 0d 0a 20 20  2b 2d 2d 2d 2d 2d 2d 2d  |   |..  +-------|
00002ee0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2b 2d 2d 2d 2d 2d  |----------+-----|
00002ef0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002f00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2b 2d 2d  |-------------+--|
00002f10  2d 2d 2d 2d 2d 2d 2d 2b  0d 0a 0d 0a 0d 0a 0d 0a  |-------+........|
00002f20  0d 0a 0d 0a 0d 0a 20 20  20 20 20 20 20 20 20 20  |......          |
00002f30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002f40  20 20 20 20 20 20 20 20  50 61 67 65 20 35 0d 0a  |        Page 5..|
00002f50  0d 0a 0d 0a 0d 0a 0d 0a  0d 0a 0d 0a 0d 0a 0d 0a  |................|
00002f60  49 6e 74 65 72 61 63 74  69 76 65 20 70 72 6f 67  |Interactive prog|
00002f70  72 61 6d 6d 69 6e 67 20  20 20 20 20 20 20 20 20  |ramming         |
00002f80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002f90  20 20 20 20 20 20 20 20  20 4a 2e 4a 2e 42 72 61  |         J.J.Bra|
00002fa0  79 73 68 61 77 20 31 39  38 37 0d 0a 0d 0a 0d 0a  |yshaw 1987......|
00002fb0  0d 0a 0d 0a 46 6f 6c 6c  6f 77 69 6e 67 20 74 68  |....Following th|
00002fc0  65 20 64 6f 77 6e 6c 6f  61 64 69 6e 67 20 6f 66  |e downloading of|
00002fd0  20 61 20 74 65 6c 65 73  6f 66 74 77 61 72 65 20  | a telesoftware |
00002fe0  66 69 6c 65 2c 20 74 68  65 20 64 65 63 6f 64 69  |file, the decodi|
00002ff0  6e 67 20 74 61 62 6c 65  73 20 6d 61 79 0d 0a 68  |ng tables may..h|
00003000  61 76 65 20 62 65 65 6e  20 64 79 6e 61 6d 69 63  |ave been dynamic|
00003010  61 6c 6c 79 20 61 6c 74  65 72 65 64 20 62 79 20  |ally altered by |
00003020  74 68 65 20 69 6e 63 6f  6d 69 6e 67 20 66 69 6c  |the incoming fil|
00003030  65 2e 20 4e 6f 72 6d 61  6c 6c 79 2c 20 74 68 65  |e. Normally, the|
00003040  20 64 65 66 61 75 6c 74  0d 0a 74 61 62 6c 65 73  | default..tables|
00003050  20 73 68 6f 75 6c 64 20  62 65 20 72 65 2d 69 6e  | should be re-in|
00003060  73 74 61 74 65 64 20 62  65 66 6f 72 65 20 64 6f  |stated before do|
00003070  77 6e 6c 6f 61 64 69 6e  67 20 66 75 72 74 68 65  |wnloading furthe|
00003080  72 20 66 69 6c 65 73 2e  20 48 6f 77 65 76 65 72  |r files. However|
00003090  2c 0d 0a 74 68 69 73 20  61 63 74 69 6f 6e 20 63  |,..this action c|
000030a0  61 6e 20 62 65 20 69 6e  68 69 62 69 74 65 64 20  |an be inhibited |
000030b0  69 66 20 72 65 71 75 69  72 65 64 2c 20 61 6c 6c  |if required, all|
000030c0  6f 77 69 6e 67 20 61 20  73 65 63 6f 6e 64 20 66  |owing a second f|
000030d0  69 6c 65 20 74 6f 20 62  65 0d 0a 64 65 63 6f 64  |ile to be..decod|
000030e0  65 64 20 75 73 69 6e 67  20 74 68 65 20 73 61 6d  |ed using the sam|
000030f0  65 20 64 65 63 6f 64 69  6e 67 20 74 61 62 6c 65  |e decoding table|
00003100  73 20 61 73 20 73 65 74  20 75 70 20 62 79 20 74  |s as set up by t|
00003110  68 65 20 66 69 72 73 74  20 66 69 6c 65 2e 20 54  |he first file. T|
00003120  68 69 73 0d 0a 63 6f 75  6c 64 20 73 61 76 65 20  |his..could save |
00003130  74 72 61 6e 73 6d 69 73  73 69 6f 6e 20 74 69 6d  |transmission tim|
00003140  65 20 61 6e 64 20 63 6f  64 69 6e 67 20 69 66 20  |e and coding if |
00003150  74 68 65 20 66 69 6c 65  73 20 72 65 71 75 69 72  |the files requir|
00003160  65 20 74 68 65 20 73 61  6d 65 0d 0a 72 65 64 65  |e the same..rede|
00003170  66 69 6e 69 74 69 6f 6e  73 20 74 6f 20 61 70 70  |finitions to app|
00003180  6c 79 2e 20 41 73 20 74  68 69 73 20 69 73 20 72  |ly. As this is r|
00003190  61 72 65 6c 79 20 74 68  65 20 63 61 73 65 2c 20  |arely the case, |
000031a0  61 6e 64 20 61 73 20 69  74 20 69 73 20 6e 6f 74  |and as it is not|
000031b0  0d 0a 67 75 61 72 61 6e  74 65 65 64 20 74 68 61  |..guaranteed tha|
000031c0  74 20 74 68 65 20 75 73  65 72 20 77 69 6c 6c 20  |t the user will |
000031d0  64 6f 77 6e 6c 6f 61 64  20 74 68 65 20 66 69 6c  |download the fil|
000031e0  65 73 20 69 6e 20 74 68  65 20 63 6f 72 72 65 63  |es in the correc|
000031f0  74 20 73 65 71 75 65 6e  63 65 2c 0d 0a 74 68 65  |t sequence,..the|
00003200  20 6e 6f 72 6d 61 6c 20  70 72 6f 63 65 64 75 72  | normal procedur|
00003210  65 20 69 73 20 61 6c 77  61 79 73 20 74 6f 20 72  |e is always to r|
00003220  65 73 65 74 20 74 68 65  20 64 65 66 61 75 6c 74  |eset the default|
00003230  20 64 65 63 6f 64 69 6e  67 20 74 61 62 6c 65 73  | decoding tables|
00003240  20 62 65 66 6f 72 65 0d  0a 61 6e 79 20 73 75 62  | before..any sub|
00003250  73 65 71 75 65 6e 74 20  64 6f 77 6e 6c 6f 61 64  |sequent download|
00003260  2e 20 54 68 65 20 63 6f  6d 6d 61 6e 64 20 22 7c  |. The command "||
00003270  42 22 2c 20 22 7c 43 22  20 6f 72 20 22 7c 46 22  |B", "|C" or "|F"|
00003280  20 61 74 20 74 68 65 20  73 74 61 72 74 20 6f 66  | at the start of|
00003290  0d 0a 74 68 65 20 66 69  6c 65 20 77 69 6c 6c 20  |..the file will |
000032a0  72 65 73 65 74 20 74 68  65 20 74 61 62 6c 65 73  |reset the tables|
000032b0  20 61 6e 79 77 61 79 2c  20 72 65 67 61 72 64 6c  | anyway, regardl|
000032c0  65 73 73 20 6f 66 20 77  68 65 74 68 65 72 20 74  |ess of whether t|
000032d0  68 65 79 20 77 65 72 65  0d 0a 72 65 73 65 74 20  |hey were..reset |
000032e0  61 74 20 74 68 65 20 65  6e 64 20 6f 66 20 74 68  |at the end of th|
000032f0  65 20 70 72 65 76 69 6f  75 73 20 66 69 6c 65 20  |e previous file |
00003300  6f 72 20 6e 6f 74 2e 0d  0a 0d 0a 54 68 65 20 64  |or not.....The d|
00003310  65 63 6f 64 69 6e 67 20  6f 66 20 61 20 66 69 6c  |ecoding of a fil|
00003320  65 20 74 68 72 6f 75 67  68 20 74 68 65 20 6c 6f  |e through the lo|
00003330  6e 65 20 61 6e 64 20 65  73 63 61 70 65 64 20 74  |ne and escaped t|
00003340  61 62 6c 65 73 20 69 73  20 61 6e 20 65 6e 74 69  |ables is an enti|
00003350  72 65 6c 79 0d 0a 61 75  74 6f 6d 61 74 69 63 20  |rely..automatic |
00003360  70 72 6f 63 65 73 73 2e  20 41 6c 6c 20 74 68 61  |process. All tha|
00003370  74 20 6e 65 65 64 73 20  74 6f 20 62 65 20 64 6f  |t needs to be do|
00003380  6e 65 20 69 73 20 74 6f  20 74 65 6c 6c 20 74 68  |ne is to tell th|
00003390  65 20 41 54 53 20 77 68  69 63 68 20 66 69 6c 65  |e ATS which file|
000033a0  0d 0a 74 6f 20 64 6f 77  6e 6c 6f 61 64 2c 20 61  |..to download, a|
000033b0  6e 64 20 77 68 65 72 65  20 74 68 65 20 66 69 6c  |nd where the fil|
000033c0  65 20 63 61 6e 20 62 65  20 66 6f 75 6e 64 2e 20  |e can be found. |
000033d0  41 20 66 65 77 20 6f 74  68 65 72 20 64 65 74 61  |A few other deta|
000033e0  69 6c 73 20 61 62 6f 75  74 0d 0a 74 68 65 20 66  |ils about..the f|
000033f0  69 6c 65 20 61 72 65 20  61 6c 73 6f 20 72 65 71  |ile are also req|
00003400  75 69 72 65 64 2e 0d 0a  0d 0a 41 6c 6c 20 74 68  |uired.....All th|
00003410  65 20 64 65 74 61 69 6c  73 20 66 6f 72 20 61 6c  |e details for al|
00003420  6c 20 63 75 72 72 65 6e  74 6c 79 20 62 72 6f 61  |l currently broa|
00003430  64 63 61 73 74 20 73 6f  66 74 77 61 72 65 20 61  |dcast software a|
00003440  72 65 20 67 69 76 65 6e  20 69 6e 20 61 0d 0a 6d  |re given in a..m|
00003450  61 63 68 69 6e 65 2d 72  65 61 64 61 62 6c 65 20  |achine-readable |
00003460  66 69 6c 65 20 6b 6e 6f  77 6e 20 61 73 20 74 68  |file known as th|
00003470  65 20 63 61 74 61 6c 6f  67 75 65 20 66 69 6c 65  |e catalogue file|
00003480  2e 20 42 65 66 6f 72 65  20 64 6f 77 6e 6c 6f 61  |. Before downloa|
00003490  64 69 6e 67 2c 20 74 68  65 0d 0a 64 65 63 6f 64  |ding, the..decod|
000034a0  65 72 20 73 68 6f 75 6c  64 20 66 69 6e 64 20 61  |er should find a|
000034b0  6e 64 20 69 6e 74 65 72  70 72 65 74 20 74 68 65  |nd interpret the|
000034c0  20 63 61 74 61 6c 6f 67  75 65 20 69 6e 66 6f 72  | catalogue infor|
000034d0  6d 61 74 69 6f 6e 2e 20  41 73 20 69 74 20 69 73  |mation. As it is|
000034e0  20 6e 6f 74 0d 0a 70 6f  73 73 69 62 6c 65 20 74  | not..possible t|
000034f0  6f 20 61 73 73 69 67 6e  20 61 20 70 61 72 74 69  |o assign a parti|
00003500  63 75 6c 61 72 20 70 61  67 65 20 74 6f 20 74 68  |cular page to th|
00003510  69 73 20 63 61 74 61 6c  6f 67 75 65 20 6f 6e 20  |is catalogue on |
00003520  61 20 70 65 72 6d 61 6e  65 6e 74 0d 0a 62 61 73  |a permanent..bas|
00003530  69 73 2c 20 74 68 65 20  64 65 63 6f 64 65 72 20  |is, the decoder |
00003540  6d 75 73 74 20 62 65 20  61 62 6c 65 20 74 6f 20  |must be able to |
00003550  64 69 73 63 6f 76 65 72  20 69 74 73 20 6c 6f 63  |discover its loc|
00003560  61 74 69 6f 6e 20 65 76  65 72 79 20 74 69 6d 65  |ation every time|
00003570  0d 0a 64 6f 77 6e 6c 6f  61 64 69 6e 67 20 69 73  |..downloading is|
00003580  20 72 65 71 75 65 73 74  65 64 2e 20 54 68 65 20  | requested. The |
00003590  63 61 74 61 6c 6f 67 75  65 20 70 61 67 65 20 69  |catalogue page i|
000035a0  73 20 70 6f 69 6e 74 65  64 20 74 6f 20 62 79 20  |s pointed to by |
000035b0  74 68 65 20 35 74 68 20  6c 69 6e 6b 0d 0a 28 6c  |the 5th link..(l|
000035c0  69 6e 6b 20 34 29 20 6f  66 20 74 68 65 20 74 65  |ink 4) of the te|
000035d0  6c 65 74 65 78 74 20 73  65 72 76 69 63 65 20 6d  |letext service m|
000035e0  61 69 6e 20 70 61 67 65  20 28 66 6f 72 20 64 65  |ain page (for de|
000035f0  74 61 69 6c 73 20 6f 66  20 70 61 67 65 20 6c 69  |tails of page li|
00003600  6e 6b 73 2c 20 73 65 65  0d 0a 6d 6f 64 75 6c 65  |nks, see..module|
00003610  20 35 29 2e 20 54 6f 20  66 69 6e 64 20 74 68 65  | 5). To find the|
00003620  20 73 65 72 76 69 63 65  73 20 6d 61 69 6e 20 28  | services main (|
00003630  6f 72 20 69 6e 69 74 69  61 6c 29 20 70 61 67 65  |or initial) page|
00003640  2c 20 74 68 65 20 22 69  6e 69 74 69 61 6c 20 70  |, the "initial p|
00003650  61 67 65 22 0d 0a 6c 69  6e 6b 20 6f 66 20 74 68  |age"..link of th|
00003660  65 20 54 53 44 50 20 6d  75 73 74 20 62 65 20 66  |e TSDP must be f|
00003670  6f 6c 6c 6f 77 65 64 2e  20 54 68 69 73 20 69 73  |ollowed. This is|
00003680  20 67 69 76 65 6e 20 69  6e 20 74 68 65 20 66 69  | given in the fi|
00003690  72 73 74 20 66 65 77 20  62 79 74 65 73 20 6f 66  |rst few bytes of|
000036a0  0d 0a 74 68 65 20 54 53  44 50 2e 20 53 6f 2c 20  |..the TSDP. So, |
000036b0  66 6f 72 20 61 20 74 65  6c 65 73 6f 66 74 77 61  |for a telesoftwa|
000036c0  72 65 20 64 6f 77 6e 6c  6f 61 64 65 72 20 74 6f  |re downloader to|
000036d0  20 6f 70 65 72 61 74 65  2c 20 69 74 20 6d 75 73  | operate, it mus|
000036e0  74 20 66 69 72 73 74 0d  0a 66 69 6e 64 20 74 68  |t first..find th|
000036f0  65 20 54 53 44 50 20 61  6e 64 20 64 65 63 6f 64  |e TSDP and decod|
00003700  65 20 74 68 65 20 22 69  6e 69 74 69 61 6c 20 70  |e the "initial p|
00003710  61 67 65 22 20 6c 69 6e  6b 20 73 65 74 74 69 6e  |age" link settin|
00003720  67 20 68 65 6c 64 20 74  68 65 72 65 2e 20 49 74  |g held there. It|
00003730  0d 0a 74 68 65 6e 20 66  69 6e 64 73 20 74 68 69  |..then finds thi|
00003740  73 20 69 6e 69 74 69 61  6c 20 70 61 67 65 20 61  |s initial page a|
00003750  6e 64 20 64 65 63 6f 64  65 73 20 6c 69 6e 6b 20  |nd decodes link |
00003760  34 2e 20 46 6f 6c 6c 6f  77 69 6e 67 20 74 68 69  |4. Following thi|
00003770  73 20 6c 69 6e 6b 20 77  69 6c 6c 0d 0a 6c 65 61  |s link will..lea|
00003780  64 20 74 6f 20 74 68 65  20 6d 61 63 68 69 6e 65  |d to the machine|
00003790  2d 72 65 61 64 61 62 6c  65 20 63 61 74 61 6c 6f  |-readable catalo|
000037a0  67 75 65 20 77 68 65 72  65 20 64 65 74 61 69 6c  |gue where detail|
000037b0  73 20 6f 66 20 74 68 65  20 74 65 6c 65 73 6f 66  |s of the telesof|
000037c0  74 77 61 72 65 0d 0a 66  69 6c 65 73 20 63 61 6e  |tware..files can|
000037d0  20 62 65 20 66 6f 75 6e  64 2e 0d 0a 0d 0a 41 6c  | be found.....Al|
000037e0  6c 20 74 68 65 20 64 6f  77 6e 6c 6f 61 64 65 64  |l the downloaded|
000037f0  20 66 69 6c 65 73 20 61  72 65 20 73 74 6f 72 65  | files are store|
00003800  64 20 69 6e 20 6d 65 6d  6f 72 79 2c 20 61 20 73  |d in memory, a s|
00003810  69 6e 67 6c 65 20 43 45  45 46 41 58 20 70 61 67  |ingle CEEFAX pag|
00003820  65 66 75 6c 20 61 74 0d  0a 61 20 74 69 6d 65 2c  |eful at..a time,|
00003830  20 62 65 66 6f 72 65 20  62 65 69 6e 67 20 73 61  | before being sa|
00003840  76 65 64 20 74 6f 20 64  69 73 63 2e 20 54 68 69  |ved to disc. Thi|
00003850  73 20 6d 61 79 20 72 65  71 75 69 72 65 20 61 73  |s may require as|
00003860  20 6d 75 63 68 20 61 73  20 32 6b 20 6f 66 0d 0a  | much as 2k of..|
00003870  77 6f 72 6b 73 70 61 63  65 20 28 6f 72 20 6d 6f  |workspace (or mo|
00003880  72 65 29 20 61 6c 6c 6f  77 69 6e 67 20 66 6f 72  |re) allowing for|
00003890  20 74 68 65 20 65 78 70  61 6e 73 69 6f 6e 20 6f  | the expansion o|
000038a0  66 20 74 65 78 74 20 64  75 65 20 74 6f 0d 0a 72  |f text due to..r|
000038b0  65 64 65 66 69 6e 69 74  69 6f 6e 73 2c 20 77 68  |edefinitions, wh|
000038c0  69 63 68 20 41 54 53 20  61 6c 6c 6f 63 61 74 65  |ich ATS allocate|
000038d0  73 20 61 74 20 4f 53 48  57 4d 2e 20 41 6e 79 20  |s at OSHWM. Any |
000038e0  64 6f 77 6e 6c 6f 61 64  65 72 20 77 72 69 74 74  |downloader writt|
000038f0  65 6e 20 69 6e 0d 0a 42  41 53 49 43 20 77 69 6c  |en in..BASIC wil|
00003900  6c 20 62 65 20 69 6d 6d  65 64 69 61 74 65 6c 79  |l be immediately|
00003910  20 63 6f 72 72 75 70 74  65 64 20 62 79 20 74 68  | corrupted by th|
00003920  65 20 69 6e 63 6f 6d 69  6e 67 20 66 69 6c 65 20  |e incoming file |
00003930  75 6e 6c 65 73 73 20 50  41 47 45 20 61 6e 64 0d  |unless PAGE and.|
00003940  0a 4f 53 48 57 4d 20 61  72 65 20 73 65 70 61 72  |.OSHWM are separ|
00003950  61 74 65 64 20 62 65 66  6f 72 65 20 73 74 61 72  |ated before star|
00003960  74 69 6e 67 20 74 68 65  20 64 6f 77 6e 6c 6f 61  |ting the downloa|
00003970  64 69 6e 67 20 70 72 6f  63 65 64 75 72 65 2e 20  |ding procedure. |
00003980  54 68 69 73 20 63 61 6e  20 62 65 0d 0a 61 63 68  |This can be..ach|
00003990  69 65 76 65 64 20 75 73  69 6e 67 20 61 20 73 69  |ieved using a si|
000039a0  6d 70 6c 65 20 4f 53 57  4f 52 44 20 63 61 6c 6c  |mple OSWORD call|
000039b0  20 61 73 20 69 6e 20 74  68 65 20 61 63 63 6f 6d  | as in the accom|
000039c0  70 61 6e 79 69 6e 67 20  70 72 6f 67 72 61 6d 2e  |panying program.|
000039d0  20 54 68 65 0d 0a 73 65  74 74 69 6e 67 20 6f 66  | The..setting of|
000039e0  20 4f 53 48 57 4d 20 6d  75 73 74 20 62 65 20 72  | OSHWM must be r|
000039f0  65 74 75 72 6e 65 64 20  74 6f 20 6e 6f 72 6d 61  |eturned to norma|
00003a00  6c 20 61 66 74 65 72 20  64 6f 77 6e 6c 6f 61 64  |l after download|
00003a10  69 6e 67 2e 0d 0a 0d 0a  0d 0a 0d 0a 0d 0a 0d 0a  |ing.............|
00003a20  0d 0a 0d 0a 0d 0a 0d 0a  0d 0a 0d 0a 20 20 20 20  |............    |
00003a30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003a40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 61  |              Pa|
00003a50  67 65 20 36 0d 0a 0d 0a  0d 0a 0d 0a 0d 0a 0d 0a  |ge 6............|
00003a60  0d 0a 0d 0a 0d 0a 49 6e  74 65 72 61 63 74 69 76  |......Interactiv|
00003a70  65 20 70 72 6f 67 72 61  6d 6d 69 6e 67 20 20 20  |e programming   |
00003a80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003a90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 4a  |               J|
00003aa0  2e 4a 2e 42 72 61 79 73  68 61 77 20 31 39 38 37  |.J.Brayshaw 1987|
00003ab0  0d 0a 0d 0a 0d 0a 0d 0a  0d 0a 54 68 65 20 63 61  |..........The ca|
00003ac0  74 61 6c 6f 67 75 65 20  70 61 67 65 20 69 73 20  |talogue page is |
00003ad0  65 6e 63 6f 64 65 64 20  75 73 69 6e 67 20 74 68  |encoded using th|
00003ae0  65 20 73 61 6d 65 20 70  72 6f 74 6f 63 6f 6c 73  |e same protocols|
00003af0  20 61 73 20 6f 74 68 65  72 0d 0a 74 65 6c 65 73  | as other..teles|
00003b00  6f 66 74 77 61 72 65 20  28 69 2e 65 2e 20 74 68  |oftware (i.e. th|
00003b10  65 20 52 54 46 20 70 72  6f 74 6f 63 6f 6c 73 29  |e RTF protocols)|
00003b20  2e 20 54 68 69 73 20 66  69 6c 65 20 69 73 20 6e  |. This file is n|
00003b30  6f 72 6d 61 6c 6c 79 20  64 6f 77 6e 6c 6f 61 64  |ormally download|
00003b40  65 64 20 74 6f 0d 0a 63  6f 6d 70 75 74 65 72 20  |ed to..computer |
00003b50  6d 65 6d 6f 72 79 20 72  61 74 68 65 72 20 74 68  |memory rather th|
00003b60  61 6e 20 74 6f 20 64 69  73 63 2e 20 54 68 65 20  |an to disc. The |
00003b70  66 69 6c 65 20 63 6f 6d  70 72 69 73 65 73 20 64  |file comprises d|
00003b80  61 74 61 20 6f 6e 6c 79  2c 20 74 68 65 0d 0a 66  |ata only, the..f|
00003b90  69 72 73 74 20 74 77 6f  20 65 6e 74 72 69 65 73  |irst two entries|
00003ba0  20 62 65 69 6e 67 20 73  74 72 69 6e 67 73 20 69  | being strings i|
00003bb0  6e 74 65 6e 64 65 64 20  66 6f 72 20 64 69 72 65  |ntended for dire|
00003bc0  63 74 20 64 69 73 70 6c  61 79 20 6f 6e 20 73 63  |ct display on sc|
00003bd0  72 65 65 6e 2e 20 41 6c  6c 0d 0a 73 74 72 69 6e  |reen. All..strin|
00003be0  67 20 65 6e 74 72 69 65  73 20 69 6e 20 74 68 65  |g entries in the|
00003bf0  20 63 61 74 61 6c 6f 67  75 65 20 66 6f 6c 6c 6f  | catalogue follo|
00003c00  77 20 74 68 65 20 73 61  6d 65 20 66 6f 72 6d 61  |w the same forma|
00003c10  74 3a 20 54 68 65 20 66  69 72 73 74 20 62 79 74  |t: The first byt|
00003c20  65 20 69 73 0d 0a 74 68  65 20 6c 65 6e 67 74 68  |e is..the length|
00003c30  20 6f 66 20 74 68 65 20  73 74 72 69 6e 67 20 2d  | of the string -|
00003c40  20 73 69 6d 70 6c 79 20  72 65 61 64 20 69 74 73  | simply read its|
00003c50  20 76 61 6c 75 65 20 64  69 72 65 63 74 6c 79 20  | value directly |
00003c60  28 77 69 74 68 0d 0a 6c  65 6e 67 74 68 25 3d 3f  |(with..length%=?|
00003c70  28 73 74 61 72 74 5f 6f  66 5f 73 74 6f 72 65 25  |(start_of_store%|
00003c80  29 29 20 2d 20 74 68 65  6e 20 74 61 6b 65 20 74  |)) - then take t|
00003c90  68 65 20 61 70 70 72 6f  70 72 69 61 74 65 20 6e  |he appropriate n|
00003ca0  75 6d 62 65 72 20 6f 66  20 62 79 74 65 73 20 74  |umber of bytes t|
00003cb0  6f 0d 0a 66 6f 72 6d 20  74 68 65 20 73 74 72 69  |o..form the stri|
00003cc0  6e 67 2e 20 45 61 63 68  20 62 79 74 65 20 6f 66  |ng. Each byte of|
00003cd0  20 74 68 65 20 73 74 72  69 6e 67 20 69 74 73 65  | the string itse|
00003ce0  6c 66 20 73 68 6f 75 6c  64 20 62 65 20 4f 52 27  |lf should be OR'|
00003cf0  65 64 20 77 69 74 68 20  26 38 30 0d 0a 62 65 66  |ed with &80..bef|
00003d00  6f 72 65 20 64 69 73 70  6c 61 79 20 74 6f 20 63  |ore display to c|
00003d10  6f 75 6e 74 65 72 20 74  68 65 20 65 66 66 65 63  |ounter the effec|
00003d20  74 73 20 6f 66 20 70 61  72 69 74 79 2e 0d 0a 0d  |ts of parity....|
00003d30  0a 54 68 65 72 65 20 74  68 65 6e 20 66 6f 6c 6c  |.There then foll|
00003d40  6f 77 73 20 61 20 71 75  61 6e 74 69 74 79 20 6f  |ows a quantity o|
00003d50  66 20 65 6e 74 72 69 65  73 2c 20 6f 6e 65 20 66  |f entries, one f|
00003d60  6f 72 20 65 61 63 68 20  74 72 61 6e 73 6d 69 74  |or each transmit|
00003d70  74 65 64 20 66 69 6c 65  2c 0d 0a 63 6f 6e 73 69  |ted file,..consi|
00003d80  73 74 69 6e 67 20 6f 66  20 65 69 67 68 74 20 66  |sting of eight f|
00003d90  69 65 6c 64 73 3a 0d 0a  0d 0a 46 69 65 6c 64 20  |ields:....Field |
00003da0  6f 6e 65 20 69 73 20 61  20 73 74 72 69 6e 67 20  |one is a string |
00003db0  67 69 76 69 6e 67 20 74  68 65 20 63 6f 6d 70 75  |giving the compu|
00003dc0  74 65 72 20 74 79 70 65  20 66 6f 72 20 77 68 69  |ter type for whi|
00003dd0  63 68 20 74 68 65 20 66  69 6c 65 20 69 73 0d 0a  |ch the file is..|
00003de0  69 6e 74 65 6e 64 65 64  2e 20 46 6f 72 20 42 42  |intended. For BB|
00003df0  43 20 63 6f 6d 70 75 74  65 72 73 2c 20 74 68 69  |C computers, thi|
00003e00  73 20 77 6f 75 6c 64 20  62 65 20 22 42 42 43 22  |s would be "BBC"|
00003e10  20 6f 72 20 22 41 4e 59  22 2e 20 41 20 64 65 63  | or "ANY". A dec|
00003e20  6f 64 65 72 0d 0a 73 68  6f 75 6c 64 20 6f 6e 6c  |oder..should onl|
00003e30  79 20 61 6c 6c 6f 77 20  66 69 6c 65 73 20 66 6f  |y allow files fo|
00003e40  72 20 75 73 65 20 77 69  74 68 20 74 68 65 20 61  |r use with the a|
00003e50  70 70 72 6f 70 72 69 61  74 65 20 63 6f 6d 70 75  |ppropriate compu|
00003e60  74 65 72 20 74 6f 20 62  65 0d 0a 64 6f 77 6e 6c  |ter to be..downl|
00003e70  6f 61 64 65 64 2e 20 4f  74 68 65 72 20 66 69 6c  |oaded. Other fil|
00003e80  65 73 20 73 68 6f 75 6c  64 20 62 65 20 69 67 6e  |es should be ign|
00003e90  6f 72 65 64 2e 0d 0a 0d  0a 41 73 20 65 61 63 68  |ored.....As each|
00003ea0  20 63 6f 6d 70 75 74 65  72 20 6d 75 73 74 20 62  | computer must b|
00003eb0  65 20 61 62 6c 65 20 74  6f 20 65 61 73 69 6c 79  |e able to easily|
00003ec0  20 69 64 65 6e 74 69 66  79 20 74 68 69 73 20 69  | identify this i|
00003ed0  6e 66 6f 72 6d 61 74 69  6f 6e 2c 20 74 68 65 0d  |nformation, the.|
00003ee0  0a 73 74 72 69 6e 67 20  75 73 65 64 20 68 61 73  |.string used has|
00003ef0  20 74 6f 20 62 65 20 63  6c 65 61 72 6c 79 20 64  | to be clearly d|
00003f00  65 66 69 6e 65 64 2e 20  43 6f 6d 70 75 74 65 72  |efined. Computer|
00003f10  20 74 79 70 65 73 20 64  65 66 69 6e 65 64 20 73  | types defined s|
00003f20  6f 20 66 61 72 20 61 72  65 3a 0d 0a 20 41 4e 59  |o far are:.. ANY|
00003f30  20 2d 20 46 6f 72 20 61  6e 79 20 63 6f 6d 70 75  | - For any compu|
00003f40  74 65 72 20 28 66 6f 72  20 65 78 61 6d 70 6c 65  |ter (for example|
00003f50  2c 20 74 65 78 74 20 66  69 6c 65 73 29 0d 0a 20  |, text files).. |
00003f60  41 4d 49 47 41 20 2d 20  43 6f 6d 6d 6f 64 6f 72  |AMIGA - Commodor|
00003f70  65 20 41 6d 69 67 61 20  63 6f 6d 70 75 74 65 72  |e Amiga computer|
00003f80  73 0d 0a 20 41 4d 53 54  52 41 44 20 2d 20 41 6d  |s.. AMSTRAD - Am|
00003f90  73 74 72 61 64 20 63 6f  6d 70 75 74 65 72 73 0d  |strad computers.|
00003fa0  0a 20 41 54 41 52 49 53  54 20 2d 20 41 74 61 72  |. ATARIST - Atar|
00003fb0  69 20 53 54 20 63 6f 6d  70 75 74 65 72 73 0d 0a  |i ST computers..|
00003fc0  20 42 42 43 20 2d 20 42  42 43 20 4d 69 63 72 6f  | BBC - BBC Micro|
00003fd0  63 6f 6d 70 75 74 65 72  73 20 28 4d 61 73 74 65  |computers (Maste|
00003fe0  72 2c 20 42 2b 20 6f 72  20 42 29 0d 0a 20 43 42  |r, B+ or B).. CB|
00003ff0  4d 36 34 20 2d 20 43 6f  6d 6d 6f 64 6f 72 65 20  |M64 - Commodore |
00004000  36 34 20 63 6f 6d 70 75  74 65 72 73 0d 0a 20 43  |64 computers.. C|
00004010  42 4d 31 32 38 20 2d 20  43 6f 6d 6d 6f 64 6f 72  |BM128 - Commodor|
00004020  65 20 31 32 38 20 63 6f  6d 70 75 74 65 72 73 0d  |e 128 computers.|
00004030  0a 20 43 4f 4d 4d 20 2d  20 41 63 6f 72 6e 20 43  |. COMM - Acorn C|
00004040  6f 6d 6d 75 6e 69 63 61  74 6f 72 73 0d 0a 20 43  |ommunicators.. C|
00004050  50 4d 20 2d 20 41 6e 79  20 43 50 4d 20 63 6f 6d  |PM - Any CPM com|
00004060  70 75 74 65 72 0d 0a 20  49 42 4d 20 2d 20 49 42  |puter.. IBM - IB|
00004070  4d 20 63 6f 6d 70 75 74  65 72 73 0d 0a 20 4d 53  |M computers.. MS|
00004080  44 4f 53 20 2d 20 41 6e  79 20 4d 53 44 4f 53 20  |DOS - Any MSDOS |
00004090  63 6f 6d 70 75 74 65 72  0d 0a 20 53 50 45 43 54  |computer.. SPECT|
000040a0  52 55 4d 20 2d 20 53 69  6e 63 6c 61 69 72 20 53  |RUM - Sinclair S|
000040b0  70 65 63 74 72 75 6d 20  63 6f 6d 70 75 74 65 72  |pectrum computer|
000040c0  73 0d 0a 0d 0a 54 68 69  73 20 66 69 65 6c 64 20  |s....This field |
000040d0  69 73 20 61 6c 73 6f 20  75 73 65 64 20 74 6f 20  |is also used to |
000040e0  6d 61 72 6b 20 74 68 65  20 65 6e 64 20 6f 66 20  |mark the end of |
000040f0  74 68 65 20 63 61 74 61  6c 6f 67 75 65 20 65 6e  |the catalogue en|
00004100  74 72 69 65 73 2e 20 49  66 20 74 68 69 73 0d 0a  |tries. If this..|
00004110  69 73 20 66 6f 75 6e 64  20 74 6f 20 62 65 20 22  |is found to be "|
00004120  2a 2a 2a 22 20 74 68 65  6e 20 74 68 65 72 65 20  |***" then there |
00004130  61 72 65 20 6e 6f 20 6d  6f 72 65 20 65 6e 74 72  |are no more entr|
00004140  69 65 73 20 69 6e 20 74  68 65 20 63 61 74 61 6c  |ies in the catal|
00004150  6f 67 75 65 2e 0d 0a 0d  0a 46 69 65 6c 64 20 74  |ogue.....Field t|
00004160  77 6f 20 69 73 20 61 20  73 74 72 69 6e 67 2c 20  |wo is a string, |
00004170  67 69 76 69 6e 67 20 74  68 65 20 66 69 6c 65 6e  |giving the filen|
00004180  61 6d 65 2e 20 54 68 65  20 66 69 72 73 74 20 62  |ame. The first b|
00004190  79 74 65 20 69 73 20 61  20 73 69 6e 67 6c 65 0d  |yte is a single.|
000041a0  0a 63 6f 6c 6f 75 72 20  63 6f 64 65 20 63 68 61  |.colour code cha|
000041b0  72 61 63 74 65 72 2c 20  61 6e 64 20 69 73 20 6e  |racter, and is n|
000041c0  6f 74 20 70 61 72 74 20  6f 66 20 74 68 65 20 66  |ot part of the f|
000041d0  69 6c 65 6e 61 6d 65 2e  20 41 64 6a 61 63 65 6e  |ilename. Adjacen|
000041e0  74 20 65 6e 74 72 69 65  73 0d 0a 69 6e 20 74 68  |t entries..in th|
000041f0  65 20 63 61 74 61 6c 6f  67 75 65 20 74 68 61 74  |e catalogue that|
00004200  20 68 61 76 65 20 74 68  65 20 73 61 6d 65 20 63  | have the same c|
00004210  6f 6c 6f 75 72 20 63 6f  64 65 20 63 68 61 72 61  |olour code chara|
00004220  63 74 65 72 20 64 65 73  63 72 69 62 65 20 66 69  |cter describe fi|
00004230  6c 65 73 0d 0a 74 68 61  74 20 61 72 65 20 74 6f  |les..that are to|
00004240  20 62 65 20 75 73 65 64  20 69 6e 20 63 6f 6e 6a  | be used in conj|
00004250  75 6e 63 74 69 6f 6e 20  77 69 74 68 20 65 61 63  |unction with eac|
00004260  68 20 6f 74 68 65 72 2e  20 41 20 77 68 69 74 65  |h other. A white|
00004270  20 63 6f 6c 6f 75 72 20  63 6f 64 65 0d 0a 63 68  | colour code..ch|
00004280  61 72 61 63 74 65 72 20  73 69 67 6e 69 66 69 65  |aracter signifie|
00004290  73 20 61 20 73 69 6e 67  6c 65 20 66 69 6c 65 20  |s a single file |
000042a0  75 6e 63 6f 6e 6e 65 63  74 65 64 20 77 69 74 68  |unconnected with|
000042b0  20 61 6e 79 20 6f 74 68  65 72 2e 0d 0a 0d 0a 54  | any other.....T|
000042c0  68 65 20 73 74 72 69 6e  67 20 69 6e 20 66 69 65  |he string in fie|
000042d0  6c 64 20 74 68 72 65 65  20 73 70 65 63 69 66 69  |ld three specifi|
000042e0  65 73 20 74 68 65 20 74  79 70 65 20 6f 66 20 66  |es the type of f|
000042f0  69 6c 65 2e 20 54 68 65  72 65 20 61 72 65 20 6e  |ile. There are n|
00004300  6f 20 64 65 66 69 6e 65  64 0d 0a 73 74 72 69 6e  |o defined..strin|
00004310  67 73 20 66 6f 72 20 74  68 65 73 65 2c 20 62 75  |gs for these, bu|
00004320  74 20 74 79 70 69 63 61  6c 20 65 6e 74 72 69 65  |t typical entrie|
00004330  73 20 68 65 72 65 20 69  6e 63 6c 75 64 65 20 22  |s here include "|
00004340  54 65 78 74 22 2c 20 22  42 41 53 49 43 22 2c 0d  |Text", "BASIC",.|
00004350  0a 22 4d 2f 43 22 2c 20  22 45 58 45 43 22 2c 20  |."M/C", "EXEC", |
00004360  22 4e 6f 74 65 73 22 20  65 74 63 2e 20 54 68 69  |"Notes" etc. Thi|
00004370  73 20 63 61 6e 20 62 65  20 75 73 65 64 20 61 73  |s can be used as|
00004380  20 61 20 67 75 69 64 65  20 74 6f 20 68 6f 77 20  | a guide to how |
00004390  74 6f 20 75 73 65 20 74  68 65 0d 0a 66 69 6c 65  |to use the..file|
000043a0  20 61 66 74 65 72 20 64  6f 77 6e 6c 6f 61 64 69  | after downloadi|
000043b0  6e 67 2e 0d 0a 0d 0a 0d  0a 0d 0a 0d 0a 0d 0a 0d  |ng..............|
000043c0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000043d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000043e0  20 20 20 50 61 67 65 20  37 0d 0a 0d 0a 0d 0a 0d  |   Page 7.......|
000043f0  0a 0d 0a 0d 0a 0d 0a 0d  0a 0d 0a 49 6e 74 65 72  |...........Inter|
00004400  61 63 74 69 76 65 20 70  72 6f 67 72 61 6d 6d 69  |active programmi|
00004410  6e 67 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |ng              |
00004420  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004430  20 20 20 20 4a 2e 4a 2e  42 72 61 79 73 68 61 77  |    J.J.Brayshaw|
00004440  20 31 39 38 37 0d 0a 0d  0a 0d 0a 0d 0a 0d 0a 46  | 1987..........F|
00004450  69 65 6c 64 20 66 6f 75  72 20 69 73 20 61 20 73  |ield four is a s|
00004460  74 72 69 6e 67 20 67 69  76 69 6e 67 20 74 68 65  |tring giving the|
00004470  20 73 69 7a 65 20 6f 66  20 74 68 65 20 66 69 6c  | size of the fil|
00004480  65 2e 20 49 74 20 69 73  20 69 6e 74 65 6e 64 65  |e. It is intende|
00004490  64 20 66 6f 72 0d 0a 64  69 73 70 6c 61 79 20 6f  |d for..display o|
000044a0  6e 6c 79 2c 20 61 6e 64  20 6e 6f 20 64 65 66 69  |nly, and no defi|
000044b0  6e 65 64 20 66 6f 72 6d  61 74 20 66 6f 72 20 74  |ned format for t|
000044c0  68 69 73 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  |his information |
000044d0  65 78 69 73 74 73 2e 20  49 74 20 69 73 0d 0a 66  |exists. It is..f|
000044e0  72 65 71 75 65 6e 74 6c  79 20 75 73 65 64 20 74  |requently used t|
000044f0  6f 20 64 65 73 63 72 69  62 65 20 74 68 65 20 71  |o describe the q|
00004500  75 61 6e 74 69 74 79 20  6f 66 20 43 45 45 46 41  |uantity of CEEFA|
00004510  58 20 70 61 67 65 73 20  6f 63 63 75 70 69 65 64  |X pages occupied|
00004520  20 62 79 20 74 68 65 0d  0a 66 69 6c 65 20 28 66  | by the..file (f|
00004530  6f 72 20 65 78 61 6d 70  6c 65 20 22 31 34 20 70  |or example "14 p|
00004540  61 67 65 73 22 29 2c 20  62 75 74 20 6d 61 79 20  |ages"), but may |
00004550  65 78 70 72 65 73 73 20  74 68 65 20 73 69 7a 65  |express the size|
00004560  20 69 6e 20 6f 74 68 65  72 20 66 6f 72 6d 73 0d  | in other forms.|
00004570  0a 73 75 63 68 20 61 73  20 22 31 2e 32 35 6b 22  |.such as "1.25k"|
00004580  2e 20 54 68 69 73 20 73  68 6f 75 6c 64 20 6e 6f  |. This should no|
00004590  74 20 62 65 20 75 73 65  64 20 74 6f 20 69 6e 66  |t be used to inf|
000045a0  6f 72 6d 20 74 68 65 20  64 6f 77 6e 6c 6f 61 64  |orm the download|
000045b0  69 6e 67 0d 0a 73 6f 66  74 77 61 72 65 20 6f 66  |ing..software of|
000045c0  20 74 68 65 20 74 6f 74  61 6c 20 66 69 6c 65 20  | the total file |
000045d0  6c 65 6e 67 74 68 2e 20  53 75 63 68 20 69 6e 66  |length. Such inf|
000045e0  6f 72 6d 61 74 69 6f 6e  20 69 73 20 61 76 61 69  |ormation is avai|
000045f0  6c 61 62 6c 65 20 77 69  74 68 69 6e 0d 0a 74 68  |lable within..th|
00004600  65 20 63 6f 64 69 6e 67  20 6f 66 20 74 68 65 20  |e coding of the |
00004610  66 69 6c 65 20 69 74 73  65 6c 66 2e 0d 0a 0d 0a  |file itself.....|
00004620  54 68 65 20 66 69 66 74  68 20 66 69 65 6c 64 20  |The fifth field |
00004630  69 73 20 74 68 65 20 61  62 73 6f 6c 75 74 65 20  |is the absolute |
00004640  6c 6f 61 64 20 61 64 64  72 65 73 73 20 6f 66 20  |load address of |
00004650  74 68 65 20 66 69 6c 65  2e 20 4e 6f 20 66 69 65  |the file. No fie|
00004660  6c 64 20 6c 65 6e 67 74  68 0d 0a 62 79 74 65 20  |ld length..byte |
00004670  69 73 20 69 6e 63 6c 75  64 65 64 20 61 73 20 69  |is included as i|
00004680  74 20 69 73 20 61 6c 77  61 79 73 20 66 6f 75 72  |t is always four|
00004690  20 62 79 74 65 73 20 6c  6f 6e 67 2e 20 49 74 20  | bytes long. It |
000046a0  68 61 73 20 74 68 65 20  6d 6f 73 74 0d 0a 73 69  |has the most..si|
000046b0  67 6e 69 66 69 63 61 6e  74 20 62 79 74 65 20 66  |gnificant byte f|
000046c0  69 72 73 74 2e 20 54 68  65 72 65 20 69 73 20 6e  |irst. There is n|
000046d0  6f 20 69 6e 74 65 72 70  72 65 74 61 74 69 6f 6e  |o interpretation|
000046e0  20 74 6f 20 61 70 70 6c  79 20 74 6f 20 74 68 65  | to apply to the|
000046f0  20 62 79 74 65 0d 0a 76  61 6c 75 65 73 2e 0d 0a  | byte..values...|
00004700  0d 0a 46 69 65 6c 64 20  73 69 78 20 69 73 20 74  |..Field six is t|
00004710  68 65 20 65 78 65 63 75  74 69 6f 6e 20 61 64 64  |he execution add|
00004720  72 65 73 73 20 6f 66 20  74 68 65 20 66 69 6c 65  |ress of the file|
00004730  2e 20 41 73 20 77 69 74  68 20 74 68 65 20 6c 6f  |. As with the lo|
00004740  61 64 20 61 64 64 72 65  73 73 2c 0d 0a 6e 6f 20  |ad address,..no |
00004750  66 69 65 6c 64 20 6c 65  6e 67 74 68 20 62 79 74  |field length byt|
00004760  65 20 69 73 20 67 69 76  65 6e 2c 20 69 74 20 62  |e is given, it b|
00004770  65 69 6e 67 20 61 6c 77  61 79 73 20 66 6f 75 72  |eing always four|
00004780  20 62 79 74 65 73 20 6c  6f 6e 67 20 77 69 74 68  | bytes long with|
00004790  20 74 68 65 0d 0a 6d 6f  73 74 20 73 69 67 6e 69  | the..most signi|
000047a0  66 69 63 61 6e 74 20 62  79 74 65 20 66 69 72 73  |ficant byte firs|
000047b0  74 2e 0d 0a 0d 0a 4e 6f  74 65 20 74 68 61 74 20  |t.....Note that |
000047c0  61 6c 74 68 6f 75 67 68  20 74 68 65 20 63 61 74  |although the cat|
000047d0  61 6c 6f 67 75 65 20 69  6e 66 6f 72 6d 61 74 69  |alogue informati|
000047e0  6f 6e 20 67 69 76 65 73  20 62 6f 74 68 20 6c 6f  |on gives both lo|
000047f0  61 64 20 61 6e 64 20 65  78 65 63 75 74 69 6f 6e  |ad and execution|
00004800  0d 0a 61 64 64 72 65 73  73 65 73 2c 20 74 68 65  |..addresses, the|
00004810  73 65 20 61 72 65 20 6f  6e 6c 79 20 75 73 65 64  |se are only used|
00004820  20 74 6f 20 73 65 74 20  74 68 65 20 63 6f 72 72  | to set the corr|
00004830  65 63 74 20 66 69 6c 65  20 61 74 74 72 69 62 75  |ect file attribu|
00004840  74 65 73 20 77 68 65 6e  0d 0a 73 61 76 69 6e 67  |tes when..saving|
00004850  20 74 68 65 20 66 69 6c  65 2e 20 54 68 65 20 66  | the file. The f|
00004860  69 6c 65 20 77 69 6c 6c  20 6e 6f 74 20 62 65 20  |ile will not be |
00004870  73 74 6f 72 65 64 20 61  74 20 74 68 65 20 67 69  |stored at the gi|
00004880  76 65 6e 20 61 64 64 72  65 73 73 20 64 75 72 69  |ven address duri|
00004890  6e 67 0d 0a 74 68 65 20  64 6f 77 6e 6c 6f 61 64  |ng..the download|
000048a0  69 6e 67 20 70 72 6f 63  65 64 75 72 65 2e 20 28  |ing procedure. (|
000048b0  49 6e 20 73 6f 6d 65 20  63 61 73 65 73 2c 20 74  |In some cases, t|
000048c0  68 65 20 6c 6f 61 64 20  61 64 64 72 65 73 73 20  |he load address |
000048d0  67 69 76 65 6e 20 69 6e  20 74 68 65 0d 0a 63 61  |given in the..ca|
000048e0  74 61 6c 6f 67 75 65 20  69 73 20 61 6c 73 6f 20  |talogue is also |
000048f0  75 73 65 64 20 74 6f 20  64 65 74 65 72 6d 69 6e  |used to determin|
00004900  65 20 74 68 65 20 65 78  61 63 74 20 70 6f 73 69  |e the exact posi|
00004910  74 69 6f 6e 20 77 69 74  68 69 6e 20 74 68 65 20  |tion within the |
00004920  6f 75 74 70 75 74 0d 0a  66 69 6c 65 20 74 6f 20  |output..file to |
00004930  73 65 6e 64 20 74 68 65  20 64 65 63 6f 64 65 64  |send the decoded|
00004940  20 62 6c 6f 63 6b 20 6f  66 20 74 68 65 20 66 69  | block of the fi|
00004950  6c 65 29 2e 0d 0a 0d 0a  54 68 65 20 73 65 76 65  |le).....The seve|
00004960  6e 74 68 20 66 69 65 6c  64 20 69 73 20 61 20 73  |nth field is a s|
00004970  69 6e 67 6c 65 20 62 79  74 65 20 67 69 76 69 6e  |ingle byte givin|
00004980  67 20 74 68 65 20 6d 61  67 61 7a 69 6e 65 20 6e  |g the magazine n|
00004990  75 6d 62 65 72 20 69 6e  20 77 68 69 63 68 20 74  |umber in which t|
000049a0  68 65 0d 0a 66 69 6c 65  20 69 73 20 62 72 6f 61  |he..file is broa|
000049b0  64 63 61 73 74 2e 0d 0a  0d 0a 46 69 65 6c 64 20  |dcast.....Field |
000049c0  65 69 67 68 74 20 69 73  20 61 20 73 69 6e 67 6c  |eight is a singl|
000049d0  65 20 62 79 74 65 20 67  69 76 69 6e 67 20 74 68  |e byte giving th|
000049e0  65 20 70 61 67 65 20 6e  75 6d 62 65 72 20 77 68  |e page number wh|
000049f0  65 72 65 20 74 68 65 20  73 74 61 72 74 20 6f 66  |ere the start of|
00004a00  20 74 68 65 0d 0a 66 69  6c 65 20 63 61 6e 20 62  | the..file can b|
00004a10  65 20 66 6f 75 6e 64 2e  0d 0a 0d 0a 41 66 74 65  |e found.....Afte|
00004a20  72 20 69 6e 74 65 72 70  72 65 74 69 6e 67 20 74  |r interpreting t|
00004a30  68 65 20 66 69 72 73 74  20 74 77 6f 20 73 74 72  |he first two str|
00004a40  69 6e 67 73 2c 20 74 68  65 20 69 6e 66 6f 72 6d  |ings, the inform|
00004a50  61 74 69 6f 6e 20 66 6f  72 20 65 61 63 68 20 66  |ation for each f|
00004a60  69 6c 65 0d 0a 61 70 70  65 61 72 73 20 61 73 20  |ile..appears as |
00004a70  69 6e 20 74 68 65 20 66  6f 6c 6c 6f 77 69 6e 67  |in the following|
00004a80  20 65 78 61 6d 70 6c 65  3a 0d 0a 0d 0a 42 79 74  | example:....Byt|
00004a90  65 20 6f 66 20 20 20 56  61 6c 75 65 20 20 20 4d  |e of   Value   M|
00004aa0  65 61 6e 69 6e 67 0d 0a  72 65 63 6f 72 64 20 20  |eaning..record  |
00004ab0  20 20 6f 66 20 62 79 74  65 0d 0a 3d 3d 3d 3d 3d  |  of byte..=====|
00004ac0  3d 3d 20 20 20 3d 3d 3d  3d 3d 3d 3d 20 3d 3d 3d  |==   ======= ===|
00004ad0  3d 3d 3d 3d 0d 0a 42 79  74 65 20 30 20 20 20 20  |====..Byte 0    |
00004ae0  26 30 33 20 20 20 20 20  4c 65 6e 67 74 68 20 6f  |&03     Length o|
00004af0  66 20 74 68 65 20 66 69  72 73 74 20 66 69 65 6c  |f the first fiel|
00004b00  64 20 6f 66 20 74 68 65  20 66 69 72 73 74 20 66  |d of the first f|
00004b10  69 6c 65 20 69 73 20 33  0d 0a 42 79 74 65 20 31  |ile is 3..Byte 1|
00004b20  20 20 20 20 26 34 30 20  20 20 20 7d 20 54 68 65  |    &40    } The|
00004b30  20 66 69 72 73 74 20 66  69 65 6c 64 20 73 74 72  | first field str|
00004b40  69 6e 67 20 69 73 20 43  48 52 24 28 26 34 30 20  |ing is CHR$(&40 |
00004b50  4f 52 20 26 38 30 29 20  2b 0d 0a 42 79 74 65 20  |OR &80) +..Byte |
00004b60  32 20 20 20 20 26 43 45  20 20 20 20 7d 20 43 48  |2    &CE    } CH|
00004b70  52 24 28 26 43 45 20 4f  52 20 26 38 30 29 20 2b  |R$(&CE OR &80) +|
00004b80  20 43 48 52 24 28 26 44  39 20 4f 52 20 26 38 30  | CHR$(&D9 OR &80|
00004b90  29 20 77 68 69 63 68 20  69 73 20 22 41 4e 59 22  |) which is "ANY"|
00004ba0  0d 0a 42 79 74 65 20 33  20 20 20 20 26 44 39 20  |..Byte 3    &D9 |
00004bb0  20 20 20 7d 20 69 6e 64  69 63 61 74 69 6e 67 20  |   } indicating |
00004bc0  74 68 65 20 66 69 6c 65  20 69 73 20 66 6f 72 20  |the file is for |
00004bd0  61 6e 79 20 6d 61 6b 65  20 6f 66 20 63 6f 6d 70  |any make of comp|
00004be0  75 74 65 72 0d 0a 42 79  74 65 20 34 20 20 20 20  |uter..Byte 4    |
00004bf0  26 30 34 20 20 20 20 20  54 68 65 20 66 69 6c 65  |&04     The file|
00004c00  6e 61 6d 65 20 69 73 20  74 68 72 65 65 20 63 68  |name is three ch|
00004c10  61 72 61 63 74 65 72 73  20 6c 6f 6e 67 2c 20 77  |aracters long, w|
00004c20  69 74 68 20 61 20 63 6f  6c 6f 75 72 0d 0a 20 20  |ith a colour..  |
00004c30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004c40  63 6f 6e 74 72 6f 6c 20  63 6f 64 65 20 61 74 20  |control code at |
00004c50  74 68 65 20 62 65 67 69  6e 6e 69 6e 67 0d 0a 42  |the beginning..B|
00004c60  79 74 65 20 35 20 20 20  20 26 38 31 20 20 20 20  |yte 5    &81    |
00004c70  20 52 65 64 20 63 6f 6c  6f 75 72 20 63 6f 6e 74  | Red colour cont|
00004c80  72 6f 6c 20 63 6f 64 65  20 2d 20 43 48 52 24 28  |rol code - CHR$(|
00004c90  26 38 31 20 4f 52 20 26  38 30 29 0d 0a 42 79 74  |&81 OR &80)..Byt|
00004ca0  65 73 20 36 2d 38 20 20  20 20 20 20 20 20 20 54  |es 6-8         T|
00004cb0  68 65 20 66 69 6c 65 6e  61 6d 65 0d 0a 42 79 74  |he filename..Byt|
00004cc0  65 20 39 20 20 20 20 26  30 34 20 20 20 20 20 54  |e 9    &04     T|
00004cd0  68 65 20 66 69 6c 65 20  74 79 70 65 20 69 73 20  |he file type is |
00004ce0  66 6f 75 72 20 62 79 74  65 73 20 6c 6f 6e 67 0d  |four bytes long.|
00004cf0  0a 42 79 74 65 73 20 31  30 2d 31 33 20 20 20 20  |.Bytes 10-13    |
00004d00  20 20 20 54 68 65 20 66  69 6c 65 20 74 79 70 65  |   The file type|
00004d10  0d 0a 42 79 74 65 20 31  34 20 20 20 26 30 38 20  |..Byte 14   &08 |
00004d20  20 20 20 20 54 68 65 20  6c 65 6e 67 74 68 20 6f  |    The length o|
00004d30  66 20 74 68 65 20 66 69  6c 65 20 69 73 20 64 65  |f the file is de|
00004d40  73 63 72 69 62 65 64 20  62 79 20 74 68 65 20 6e  |scribed by the n|
00004d50  65 78 74 20 38 20 62 79  74 65 0d 0a 20 20 20 20  |ext 8 byte..    |
00004d60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 73 74  |              st|
00004d70  72 69 6e 67 0d 0a 0d 0a  0d 0a 0d 0a 0d 0a 20 20  |ring..........  |
00004d80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00004da0  50 61 67 65 20 38 0d 0a  0d 0a 0d 0a 0d 0a 0d 0a  |Page 8..........|
00004db0  0d 0a 0d 0a 0d 0a 0d 0a  49 6e 74 65 72 61 63 74  |........Interact|
00004dc0  69 76 65 20 70 72 6f 67  72 61 6d 6d 69 6e 67 20  |ive programming |
00004dd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00004df0  20 4a 2e 4a 2e 42 72 61  79 73 68 61 77 20 31 39  | J.J.Brayshaw 19|
00004e00  38 37 0d 0a 0d 0a 0d 0a  0d 0a 0d 0a 42 79 74 65  |87..........Byte|
00004e10  73 20 31 35 2d 32 32 20  20 20 20 20 20 20 54 68  |s 15-22       Th|
00004e20  65 20 66 69 6c 65 20 6c  65 6e 67 74 68 20 73 74  |e file length st|
00004e30  72 69 6e 67 0d 0a 42 79  74 65 20 32 33 20 20 20  |ring..Byte 23   |
00004e40  26 30 30 20 20 20 20 7d  20 54 68 65 20 61 62 73  |&00    } The abs|
00004e50  6f 6c 75 74 65 20 6c 6f  61 64 20 61 64 64 72 65  |olute load addre|
00004e60  73 73 20 69 73 20 26 30  30 30 30 31 39 30 30 0d  |ss is &00001900.|
00004e70  0a 42 79 74 65 20 32 34  20 20 20 26 30 30 20 20  |.Byte 24   &00  |
00004e80  20 20 7d 0d 0a 42 79 74  65 20 32 35 20 20 20 26  |  }..Byte 25   &|
00004e90  31 39 20 20 20 20 7d 0d  0a 42 79 74 65 20 32 36  |19    }..Byte 26|
00004ea0  20 20 20 26 30 30 20 20  20 20 7d 0d 0a 42 79 74  |   &00    }..Byt|
00004eb0  65 20 32 37 20 20 20 26  30 30 20 20 20 20 20 20  |e 27   &00      |
00004ec0  7d 20 54 68 65 20 65 78  65 63 75 74 69 6f 6e 20  |} The execution |
00004ed0  61 64 64 72 65 73 73 20  66 6f 72 20 74 68 65 20  |address for the |
00004ee0  66 69 6c 65 20 69 73 20  26 30 30 30 30 38 30 32  |file is &0000802|
00004ef0  33 0d 0a 42 79 74 65 20  32 38 20 20 20 26 30 30  |3..Byte 28   &00|
00004f00  20 20 20 20 20 20 7d 0d  0a 42 79 74 65 20 32 39  |      }..Byte 29|
00004f10  20 20 20 26 38 30 20 20  20 20 20 20 7d 0d 0a 42  |   &80      }..B|
00004f20  79 74 65 20 33 30 20 20  20 26 32 33 20 20 20 20  |yte 30   &23    |
00004f30  20 20 7d 0d 0a 42 79 74  65 20 33 31 20 20 20 26  |  }..Byte 31   &|
00004f40  30 37 20 20 20 20 20 54  68 65 20 66 69 6c 65 20  |07     The file |
00004f50  69 73 20 74 72 61 6e 73  6d 69 74 74 65 64 20 69  |is transmitted i|
00004f60  6e 20 6d 61 67 61 7a 69  6e 65 20 37 0d 0a 42 79  |n magazine 7..By|
00004f70  74 65 20 33 32 20 20 20  26 32 31 20 20 20 20 20  |te 32   &21     |
00004f80  54 68 65 20 66 69 6c 65  20 69 73 20 74 72 61 6e  |The file is tran|
00004f90  73 6d 69 74 74 65 64 20  6f 6e 20 70 61 67 65 20  |smitted on page |
00004fa0  32 31 20 6f 66 20 74 68  65 20 6d 61 67 61 7a 69  |21 of the magazi|
00004fb0  6e 65 0d 0a 0d 0a 54 68  65 20 6e 65 78 74 20 62  |ne....The next b|
00004fc0  79 74 65 20 77 6f 75 6c  64 20 62 65 20 74 68 65  |yte would be the|
00004fd0  20 66 69 72 73 74 20 6f  66 20 74 68 65 20 6e 65  | first of the ne|
00004fe0  78 74 20 72 65 63 6f 72  64 2e 0d 0a 0d 0a 4f 6e  |xt record.....On|
00004ff0  63 65 20 64 65 74 61 69  6c 73 20 66 6f 72 20 65  |ce details for e|
00005000  61 63 68 20 66 69 6c 65  20 68 61 76 65 20 62 65  |ach file have be|
00005010  65 6e 20 66 6f 75 6e 64  2c 20 74 68 65 20 64 6f  |en found, the do|
00005020  77 6e 6c 6f 61 64 69 6e  67 20 70 72 6f 63 65 73  |wnloading proces|
00005030  73 20 63 61 6e 0d 0a 73  74 61 72 74 2e 20 49 74  |s can..start. It|
00005040  20 69 73 20 6e 6f 77 20  61 20 73 69 6d 70 6c 65  | is now a simple|
00005050  20 6d 61 74 74 65 72 20  74 6f 20 69 67 6e 6f 72  | matter to ignor|
00005060  65 20 61 6e 79 20 66 69  6c 65 20 6e 6f 74 20 72  |e any file not r|
00005070  65 71 75 69 72 65 64 20  28 66 6f 72 0d 0a 65 78  |equired (for..ex|
00005080  61 6d 70 6c 65 20 61 20  66 69 6c 65 20 74 68 61  |ample a file tha|
00005090  74 20 64 6f 65 73 20 6e  6f 74 20 68 61 76 65 20  |t does not have |
000050a0  61 20 63 6f 6d 70 75 74  65 72 20 74 79 70 65 20  |a computer type |
000050b0  6f 66 20 22 42 42 43 22  20 6f 72 20 22 41 4e 59  |of "BBC" or "ANY|
000050c0  22 29 20 6f 72 0d 0a 61  63 63 65 70 74 20 6f 6e  |") or..accept on|
000050d0  6c 79 20 66 69 6c 65 73  20 77 69 74 68 20 61 20  |ly files with a |
000050e0  66 69 6c 65 20 74 79 70  65 20 6f 66 20 22 54 45  |file type of "TE|
000050f0  58 54 22 20 6f 72 20 22  4e 4f 54 45 53 22 2c 20  |XT" or "NOTES", |
00005100  65 74 63 2e 20 49 74 20  69 73 0d 0a 69 6d 70 6f  |etc. It is..impo|
00005110  72 74 61 6e 74 20 74 6f  20 72 65 6d 65 6d 62 65  |rtant to remembe|
00005120  72 20 74 68 61 74 20 41  54 53 20 72 65 71 75 69  |r that ATS requi|
00005130  72 65 73 20 74 68 65 20  66 69 6c 65 6e 61 6d 65  |res the filename|
00005140  20 74 6f 20 62 65 20 69  6e 20 75 70 70 65 72 2d  | to be in upper-|
00005150  63 61 73 65 0d 0a 6c 65  74 74 65 72 73 2c 20 65  |case..letters, e|
00005160  76 65 6e 20 69 66 20 74  68 65 20 66 69 6c 65 6e  |ven if the filen|
00005170  61 6d 65 20 61 73 20 64  65 63 6f 64 65 64 20 66  |ame as decoded f|
00005180  72 6f 6d 20 74 68 65 20  63 61 74 61 6c 6f 67 75  |rom the catalogu|
00005190  65 20 63 6f 6e 74 61 69  6e 73 0d 0a 6c 6f 77 65  |e contains..lowe|
000051a0  72 2d 63 61 73 65 20 6c  65 74 74 65 72 73 2e 20  |r-case letters. |
000051b0  54 68 65 72 65 66 6f 72  65 2c 20 65 61 63 68 20  |Therefore, each |
000051c0  62 79 74 65 20 69 6e 20  74 68 65 20 73 74 72 69  |byte in the stri|
000051d0  6e 67 20 66 69 65 6c 64  73 20 73 68 6f 75 6c 64  |ng fields should|
000051e0  20 62 65 0d 0a 41 4e 44  27 65 64 20 77 69 74 68  | be..AND'ed with|
000051f0  20 26 35 46 20 74 6f 20  65 6e 73 75 72 65 20 69  | &5F to ensure i|
00005200  74 20 69 73 20 75 70 70  65 72 2d 63 61 73 65 2c  |t is upper-case,|
00005210  20 61 6e 64 20 74 68 61  74 20 69 74 20 6c 69 65  | and that it lie|
00005220  73 20 69 6e 20 74 68 65  20 72 61 6e 67 65 0d 0a  |s in the range..|
00005230  6f 66 20 63 6f 64 65 73  20 70 72 6f 64 75 63 65  |of codes produce|
00005240  64 20 62 79 20 74 68 65  20 42 42 43 27 73 20 6b  |d by the BBC's k|
00005250  65 79 62 6f 61 72 64 21  0d 0a 0d 0a 54 68 65 20  |eyboard!....The |
00005260  41 54 53 20 70 72 6f 76  69 64 65 73 20 61 20 72  |ATS provides a r|
00005270  6f 75 74 69 6e 65 20 74  6f 20 64 6f 77 6e 6c 6f  |outine to downlo|
00005280  61 64 20 61 6e 79 20 66  69 6c 65 2c 20 67 69 76  |ad any file, giv|
00005290  65 6e 20 63 65 72 74 61  69 6e 0d 0a 69 6e 66 6f  |en certain..info|
000052a0  72 6d 61 74 69 6f 6e 2e  20 49 74 20 6d 75 73 74  |rmation. It must|
000052b0  20 62 65 20 74 6f 6c 64  20 74 68 65 20 66 69 6c  | be told the fil|
000052c0  65 6e 61 6d 65 20 28 69  6e 20 75 70 70 65 72 2d  |ename (in upper-|
000052d0  63 61 73 65 2c 20 65 78  63 6c 75 64 69 6e 67 20  |case, excluding |
000052e0  74 68 65 0d 0a 70 72 65  63 65 64 69 6e 67 20 63  |the..preceding c|
000052f0  6f 6c 6f 75 72 20 63 6f  6e 74 72 6f 6c 20 63 6f  |olour control co|
00005300  64 65 20 66 6f 75 6e 64  20 69 6e 20 74 68 65 20  |de found in the |
00005310  63 61 74 61 6c 6f 67 75  65 20 65 6e 74 72 79 29  |catalogue entry)|
00005320  2c 20 6c 6f 61 64 20 61  64 64 72 65 73 73 2c 0d  |, load address,.|
00005330  0a 65 78 65 63 75 74 69  6f 6e 20 61 64 64 72 65  |.execution addre|
00005340  73 73 2c 20 6d 61 67 61  7a 69 6e 65 20 6e 75 6d  |ss, magazine num|
00005350  62 65 72 2c 20 70 61 67  65 20 6e 75 6d 62 65 72  |ber, page number|
00005360  2c 20 77 68 65 74 68 65  72 20 74 6f 20 6c 6f 61  |, whether to loa|
00005370  64 20 74 6f 20 66 69 6c  65 0d 0a 6f 72 20 6d 65  |d to file..or me|
00005380  6d 6f 72 79 2c 20 61 6e  64 20 77 68 65 74 68 65  |mory, and whethe|
00005390  72 20 74 6f 20 72 65 73  65 74 20 74 68 65 20 52  |r to reset the R|
000053a0  54 46 20 64 65 63 6f 64  69 6e 67 20 74 61 62 6c  |TF decoding tabl|
000053b0  65 73 20 74 6f 20 74 68  65 69 72 20 64 65 66 61  |es to their defa|
000053c0  75 6c 74 0d 0a 73 65 74  74 69 6e 67 73 20 61 66  |ult..settings af|
000053d0  74 65 72 20 64 6f 77 6e  6c 6f 61 64 69 6e 67 2e  |ter downloading.|
000053e0  0d 0a 0d 0a 55 73 69 6e  67 20 61 20 64 69 72 65  |....Using a dire|
000053f0  63 74 20 4f 53 57 4f 52  44 20 63 61 6c 6c 20 74  |ct OSWORD call t|
00005400  6f 20 74 68 65 20 41 54  53 20 61 6c 6c 6f 77 73  |o the ATS allows|
00005410  20 73 6f 66 74 77 61 72  65 20 74 6f 20 62 65 20  | software to be |
00005420  64 6f 77 6e 6c 6f 61 64  65 64 0d 0a 77 69 74 68  |downloaded..with|
00005430  6f 75 74 20 74 68 65 20  6e 65 65 64 20 74 6f 20  |out the need to |
00005440  72 65 66 65 72 20 74 6f  20 74 68 65 20 63 61 74  |refer to the cat|
00005450  61 6c 6f 67 75 65 20 70  61 67 65 20 61 74 20 61  |alogue page at a|
00005460  6c 6c 20 28 70 72 6f 76  69 64 65 64 20 74 68 65  |ll (provided the|
00005470  0d 0a 6e 65 63 65 73 73  61 72 79 20 64 65 74 61  |..necessary deta|
00005480  69 6c 73 20 61 72 65 20  6b 6e 6f 77 6e 20 61 62  |ils are known ab|
00005490  6f 75 74 20 74 68 65 20  66 69 6c 65 20 69 6e 20  |out the file in |
000054a0  61 64 76 61 6e 63 65 29  2e 20 54 68 69 73 20 6d  |advance). This m|
000054b0  61 6b 65 73 20 69 74 0d  0a 70 6f 73 73 69 62 6c  |akes it..possibl|
000054c0  65 20 74 6f 20 64 6f 77  6e 6c 6f 61 64 20 73 6f  |e to download so|
000054d0  66 74 77 61 72 65 20 66  72 6f 6d 20 61 6e 79 20  |ftware from any |
000054e0  63 68 61 6e 6e 65 6c 2c  20 69 72 72 65 73 70 65  |channel, irrespe|
000054f0  63 74 69 76 65 20 6f 66  20 77 68 65 74 68 65 72  |ctive of whether|
00005500  20 61 0d 0a 63 61 74 61  6c 6f 67 75 65 20 69 73  | a..catalogue is|
00005510  20 62 65 69 6e 67 20 74  72 61 6e 73 6d 69 74 74  | being transmitt|
00005520  65 64 20 6f 72 20 6e 6f  74 2e 0d 0a 0d 0a 42 79  |ed or not.....By|
00005530  20 69 6e 74 65 72 70 72  65 74 69 6e 67 20 74 68  | interpreting th|
00005540  65 20 63 61 74 61 6c 6f  67 75 65 20 66 69 6c 65  |e catalogue file|
00005550  2c 20 61 75 74 6f 6d 61  74 69 63 20 64 6f 77 6e  |, automatic down|
00005560  6c 6f 61 64 65 72 73 20  63 61 6e 20 62 65 20 63  |loaders can be c|
00005570  72 65 61 74 65 64 0d 0a  74 6f 20 63 61 74 65 72  |reated..to cater|
00005580  20 66 6f 72 20 61 6e 79  20 72 65 71 75 69 72 65  | for any require|
00005590  6d 65 6e 74 73 2e 20 44  6f 77 6e 6c 6f 61 64 20  |ments. Download |
000055a0  61 6c 6c 20 74 68 65 20  66 69 6c 65 73 20 77 69  |all the files wi|
000055b0  74 68 6f 75 74 20 66 75  72 74 68 65 72 0d 0a 69  |thout further..i|
000055c0  6e 74 65 72 76 65 6e 74  69 6f 6e 2c 20 6f 72 20  |ntervention, or |
000055d0  64 6f 77 6e 6c 6f 61 64  20 61 6c 6c 20 74 65 78  |download all tex|
000055e0  74 2d 6f 6e 6c 79 20 66  69 6c 65 73 2c 20 6f 72  |t-only files, or|
000055f0  20 61 6c 6c 20 74 68 6f  73 65 20 6c 65 73 73 20  | all those less |
00005600  74 68 61 6e 20 35 0d 0a  70 61 67 65 73 20 6c 6f  |than 5..pages lo|
00005610  6e 67 2c 20 65 74 63 2e  20 65 74 63 2e 20 54 68  |ng, etc. etc. Th|
00005620  65 20 76 65 72 73 61 74  69 6c 69 74 79 20 6f 66  |e versatility of|
00005630  20 74 68 69 73 20 73 79  73 74 65 6d 20 69 73 20  | this system is |
00005640  65 6e 64 6c 65 73 73 2e  0d 0a 0d 0a 5f 5f 5f 5f  |endless.....____|
00005650  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
*
00005690  5f 5f 5f 5f 5f 5f 0d 0a  0d 0a 0d 0a 0d 0a 0d 0a  |______..........|
000056a0  0d 0a 0d 0a 0d 0a 0d 0a  0d 0a 20 20 20 20 20 20  |..........      |
000056b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000056c0  20 20 20 20 20 20 20 20  20 20 20 20 50 61 67 65  |            Page|
000056d0  20 39 0d 0a 0d 0a 0d 0a  0d 0a 0d 0a 0d 0a 0d 0a  | 9..............|
000056e0  0d 0a 0d 0a 49 6e 74 65  72 61 63 74 69 76 65 20  |....Interactive |
000056f0  70 72 6f 67 72 61 6d 6d  69 6e 67 20 20 20 20 20  |programming     |
00005700  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005710  20 20 20 20 20 20 20 20  20 20 20 20 20 4a 2e 4a  |             J.J|
00005720  2e 42 72 61 79 73 68 61  77 20 31 39 38 37 0d 0a  |.Brayshaw 1987..|
00005730  0d 0a 0d 0a 0d 0a 0d 0a  54 68 65 20 61 63 63 6f  |........The acco|
00005740  6d 70 61 6e 79 69 6e 67  20 70 72 6f 67 72 61 6d  |mpanying program|
00005750  2c 20 77 68 65 6e 20 72  75 6e 2c 20 77 69 6c 6c  |, when run, will|
00005760  20 64 6f 77 6e 6c 6f 61  64 20 61 20 66 69 6c 65  | download a file|
00005770  20 66 72 6f 6d 20 61 6e  79 20 63 68 61 6e 6e 65  | from any channe|
00005780  6c 2c 0d 0a 61 6e 64 20  77 69 6c 6c 20 72 65 71  |l,..and will req|
00005790  75 69 72 65 20 74 68 65  20 69 6e 70 75 74 20 6f  |uire the input o|
000057a0  66 20 74 68 65 20 66 6f  6c 6c 6f 77 69 6e 67 20  |f the following |
000057b0  69 6e 66 6f 72 6d 61 74  69 6f 6e 3a 0d 0a 0d 0a  |information:....|
000057c0  20 31 2e 20 54 65 6c 65  76 69 73 69 6f 6e 20 63  | 1. Television c|
000057d0  68 61 6e 6e 65 6c 20 6e  75 6d 62 65 72 0d 0a 0d  |hannel number...|
000057e0  0a 20 32 2e 20 54 65 6c  65 74 65 78 74 20 70 61  |. 2. Teletext pa|
000057f0  67 65 20 66 6f 72 20 74  68 65 20 73 74 61 72 74  |ge for the start|
00005800  20 6f 66 20 74 68 65 20  66 69 6c 65 20 28 74 68  | of the file (th|
00005810  65 20 6d 61 67 61 7a 69  6e 65 20 6e 75 6d 62 65  |e magazine numbe|
00005820  72 20 69 73 0d 0a 20 20  20 20 63 61 6c 63 75 6c  |r is..    calcul|
00005830  61 74 65 64 20 66 72 6f  6d 20 74 68 65 20 67 69  |ated from the gi|
00005840  76 65 6e 20 70 61 67 65  20 6e 75 6d 62 65 72 29  |ven page number)|
00005850  0d 0a 0d 0a 20 33 2e 20  46 69 6c 65 6e 61 6d 65  |.... 3. Filename|
00005860  2e 20 54 68 69 73 20 4d  55 53 54 20 62 65 20 65  |. This MUST be e|
00005870  6e 74 65 72 65 64 20 69  6e 20 75 70 70 65 72 20  |ntered in upper |
00005880  63 61 73 65 2c 20 61 6e  64 20 6f 74 68 65 72 77  |case, and otherw|
00005890  69 73 65 20 63 6f 72 72  65 73 70 6f 6e 64 0d 0a  |ise correspond..|
000058a0  20 20 20 20 65 78 61 63  74 6c 79 20 77 69 74 68  |    exactly with|
000058b0  20 74 68 61 74 20 67 69  76 65 6e 20 69 6e 20 74  | that given in t|
000058c0  68 65 20 66 69 6c 65 0d  0a 0d 0a 20 34 2e 20 41  |he file.... 4. A|
000058d0  62 73 6f 6c 75 74 65 20  6c 6f 61 64 20 61 64 64  |bsolute load add|
000058e0  72 65 73 73 20 6f 66 20  74 68 65 20 66 69 6c 65  |ress of the file|
000058f0  2e 20 49 66 20 74 68 65  20 66 69 6c 65 20 63 6f  |. If the file co|
00005900  6e 74 61 69 6e 73 20 61  62 73 6f 6c 75 74 65 0d  |ntains absolute.|
00005910  0a 20 20 20 20 61 64 64  72 65 73 73 69 6e 67 20  |.    addressing |
00005920  77 69 74 68 69 6e 20 74  68 65 20 63 6f 64 69 6e  |within the codin|
00005930  67 2c 20 74 68 65 6e 20  74 68 65 20 61 64 64 72  |g, then the addr|
00005940  65 73 73 20 67 69 76 65  6e 20 68 65 72 65 20 4d  |ess given here M|
00005950  55 53 54 0d 0a 20 20 20  20 63 6f 72 72 65 73 70  |UST..    corresp|
00005960  6f 6e 64 20 74 6f 20 74  68 65 20 61 64 64 72 65  |ond to the addre|
00005970  73 73 20 67 69 76 65 6e  20 69 6e 20 74 68 65 20  |ss given in the |
00005980  66 69 72 73 74 20 62 6c  6f 63 6b 20 6f 66 20 74  |first block of t|
00005990  68 65 20 66 69 6c 65 2e  20 49 66 20 74 68 65 0d  |he file. If the.|
000059a0  0a 20 20 20 20 66 69 6c  65 20 61 64 64 72 65 73  |.    file addres|
000059b0  73 69 6e 67 20 77 69 74  68 69 6e 20 74 68 65 20  |sing within the |
000059c0  63 6f 64 65 64 20 66 69  6c 65 20 69 73 20 61 20  |coded file is a |
000059d0  72 65 6c 61 74 69 76 65  20 61 64 64 72 65 73 73  |relative address|
000059e0  2c 20 74 68 65 6e 20 74  68 65 0d 0a 20 20 20 20  |, then the..    |
000059f0  69 6e 66 6f 72 6d 61 74  69 6f 6e 20 67 69 76 65  |information give|
00005a00  6e 20 68 65 72 65 20 69  73 20 6f 6e 6c 79 20 75  |n here is only u|
00005a10  73 65 64 20 66 6f 72 20  73 65 74 74 69 6e 67 20  |sed for setting |
00005a20  74 68 65 20 66 69 6c 65  20 61 74 74 72 69 62 75  |the file attribu|
00005a30  74 65 73 20 6f 6e 0d 0a  20 20 20 20 73 61 76 69  |tes on..    savi|
00005a40  6e 67 0d 0a 0d 0a 20 35  2e 20 45 78 65 63 75 74  |ng.... 5. Execut|
00005a50  69 6f 6e 20 61 64 64 72  65 73 73 20 6f 66 20 74  |ion address of t|
00005a60  68 65 20 66 69 6c 65 20  28 75 73 65 64 20 6f 6e  |he file (used on|
00005a70  6c 79 20 66 6f 72 20 73  65 74 74 69 6e 67 20 74  |ly for setting t|
00005a80  68 65 20 63 6f 72 72 65  63 74 20 66 69 6c 65 0d  |he correct file.|
00005a90  0a 20 20 20 20 61 74 74  72 69 62 75 74 65 73 20  |.    attributes |
00005aa0  6f 6e 20 73 61 76 69 6e  67 29 0d 0a 0d 0a 20 36  |on saving).... 6|
00005ab0  2e 20 46 69 6c 65 20 74  6f 20 6c 6f 61 64 20 74  |. File to load t|
00005ac0  6f 20 6d 65 6d 6f 72 79  20 6f 72 20 66 69 6c 69  |o memory or fili|
00005ad0  6e 67 20 73 79 73 74 65  6d 2e 20 54 68 65 20 64  |ng system. The d|
00005ae0  6f 77 6e 6c 6f 61 64 65  64 20 66 69 6c 65 20 69  |ownloaded file i|
00005af0  73 0d 0a 20 20 20 20 6e  6f 72 6d 61 6c 6c 79 20  |s..    normally |
00005b00  73 61 76 65 64 20 74 6f  20 64 69 73 63 20 61 73  |saved to disc as|
00005b10  20 65 61 63 68 20 62 6c  6f 63 6b 20 69 73 20 72  | each block is r|
00005b20  65 63 65 69 76 65 64 2c  20 62 75 69 6c 64 69 6e  |eceived, buildin|
00005b30  67 20 75 70 20 74 68 65  0d 0a 20 20 20 20 63 6f  |g up the..    co|
00005b40  6d 70 6c 65 74 65 20 66  69 6c 65 20 6f 6e 20 64  |mplete file on d|
00005b50  69 73 63 2e 20 59 6f 75  20 63 61 6e 2c 20 68 6f  |isc. You can, ho|
00005b60  77 65 76 65 72 2c 20 6f  70 74 20 74 6f 20 64 6f  |wever, opt to do|
00005b70  77 6e 6c 6f 61 64 20 74  68 65 20 66 69 6c 65 20  |wnload the file |
00005b80  69 6e 74 6f 0d 0a 20 20  20 20 6d 65 6d 6f 72 79  |into..    memory|
00005b90  20 6f 6e 6c 79 2c 20 69  66 20 70 72 65 66 65 72  | only, if prefer|
00005ba0  72 65 64 2c 20 70 72 6f  76 69 64 65 64 20 73 75  |red, provided su|
00005bb0  66 66 69 63 69 65 6e 74  20 73 70 61 72 65 20 6d  |fficient spare m|
00005bc0  65 6d 6f 72 79 20 69 73  0d 0a 20 20 20 20 61 76  |emory is..    av|
00005bd0  61 69 6c 61 62 6c 65 21  0d 0a 0d 0a 20 37 2e 20  |ailable!.... 7. |
00005be0  52 65 73 65 74 20 74 68  65 20 64 65 66 61 75 6c  |Reset the defaul|
00005bf0  74 20 74 61 62 6c 65 73  20 61 66 74 65 72 20 64  |t tables after d|
00005c00  6f 77 6e 6c 6f 61 64 69  6e 67 2e 20 4e 6f 72 6d  |ownloading. Norm|
00005c10  61 6c 6c 79 2c 20 74 68  69 73 20 73 68 6f 75 6c  |ally, this shoul|
00005c20  64 20 62 65 0d 0a 20 20  20 20 64 6f 6e 65 20 74  |d be..    done t|
00005c30  6f 20 61 76 6f 69 64 20  69 6e 63 6f 72 72 65 63  |o avoid incorrec|
00005c40  74 20 64 65 63 6f 64 69  6e 67 20 6f 66 20 73 75  |t decoding of su|
00005c50  62 73 65 71 75 65 6e 74  20 66 69 6c 65 73 2e 20  |bsequent files. |
00005c60  49 6e 20 70 72 61 63 74  69 63 65 2c 0d 0a 20 20  |In practice,..  |
00005c70  20 20 68 6f 77 65 76 65  72 2c 20 74 68 65 20 74  |  however, the t|
00005c80  61 62 6c 65 73 20 61 72  65 20 75 73 75 61 6c 6c  |ables are usuall|
00005c90  79 20 72 65 73 65 74 20  61 74 20 74 68 65 20 73  |y reset at the s|
00005ca0  74 61 72 74 20 6f 66 20  61 6e 79 20 73 75 62 73  |tart of any subs|
00005cb0  65 71 75 65 6e 74 0d 0a  20 20 20 20 64 6f 77 6e  |equent..    down|
00005cc0  6c 6f 61 64 69 6e 67 20  6f 70 65 72 61 74 69 6f  |loading operatio|
00005cd0  6e 2e 0d 0a 0d 0a 54 6f  20 66 69 6e 64 20 74 68  |n.....To find th|
00005ce0  65 20 6c 6f 61 64 20 61  64 64 72 65 73 73 20 77  |e load address w|
00005cf0  69 74 68 6f 75 74 20 72  65 66 65 72 65 6e 63 65  |ithout reference|
00005d00  20 74 6f 20 74 68 65 20  63 61 74 61 6c 6f 67 75  | to the catalogu|
00005d10  65 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 2c 0d 0a  |e information,..|
00005d20  6c 6f 6f 6b 20 61 74 20  74 68 65 20 66 69 72 73  |look at the firs|
00005d30  74 20 70 61 67 65 20 6f  66 20 74 68 65 20 74 65  |t page of the te|
00005d40  6c 65 73 6f 66 74 77 61  72 65 20 66 69 6c 65 2e  |lesoftware file.|
00005d50  20 53 6f 6d 65 77 68 65  72 65 20 74 6f 77 61 72  | Somewhere towar|
00005d60  64 73 20 74 68 65 0d 0a  73 74 61 72 74 20 6f 66  |ds the..start of|
00005d70  20 74 68 65 20 63 6f 64  69 6e 67 20 73 68 6f 75  | the coding shou|
00005d80  6c 64 20 62 65 20 74 68  65 20 63 6f 6d 6d 61 6e  |ld be the comman|
00005d90  64 20 73 65 71 75 65 6e  63 65 3a 20 22 7c 6c 22  |d sequence: "|l"|
00005da0  20 6f 72 20 22 7c 6d 22  2e 20 54 68 65 73 65 0d  | or "|m". These.|
00005db0  0a 63 6f 64 65 73 20 69  6e 64 69 63 61 74 65 20  |.codes indicate |
00005dc0  74 68 65 20 73 74 61 72  74 20 6f 66 20 74 68 65  |the start of the|
00005dd0  20 6c 6f 61 64 20 61 64  64 72 65 73 73 20 64 61  | load address da|
00005de0  74 61 2e 20 7c 6c 20 69  6e 64 69 63 61 74 65 73  |ta. |l indicates|
00005df0  20 74 68 65 20 6c 6f 61  64 0d 0a 61 64 64 72 65  | the load..addre|
00005e00  73 73 20 74 68 61 74 20  66 6f 6c 6c 6f 77 73 20  |ss that follows |
00005e10  69 73 20 61 6e 20 61 62  73 6f 6c 75 74 65 20 61  |is an absolute a|
00005e20  64 64 72 65 73 73 2c 20  61 6e 64 20 7c 6d 20 73  |ddress, and |m s|
00005e30  68 6f 77 73 20 69 74 20  69 73 20 72 65 6c 61 74  |hows it is relat|
00005e40  69 76 65 0d 0a 28 72 65  6c 61 74 69 76 65 20 74  |ive..(relative t|
00005e50  6f 20 74 68 65 20 62 65  67 69 6e 69 6e 67 20 6f  |o the begining o|
00005e60  66 20 74 68 65 20 66 69  6c 65 29 2e 20 54 68 65  |f the file). The|
00005e70  72 65 20 66 6f 6c 6c 6f  77 73 20 61 20 73 69 6e  |re follows a sin|
00005e80  67 6c 65 20 62 79 74 65  20 67 69 76 69 6e 67 0d  |gle byte giving.|
00005e90  0a 74 68 65 20 6e 75 6d  62 65 72 20 6f 66 20 62  |.the number of b|
00005ea0  79 74 65 73 20 63 6f 6d  70 72 69 73 69 6e 67 20  |ytes comprising |
00005eb0  74 68 65 20 61 64 64 72  65 73 73 2e 20 54 68 69  |the address. Thi|
00005ec0  73 20 69 73 20 69 6e 20  70 6c 61 69 6e 20 41 53  |s is in plain AS|
00005ed0  43 49 49 20 66 6f 72 6d  61 74 2c 0d 0a 61 6e 64  |CII format,..and|
00005ee0  20 63 61 6e 20 62 65 20  72 65 61 64 20 64 69 72  | can be read dir|
00005ef0  65 63 74 6c 79 2e 20 46  6f 72 20 65 78 61 6d 70  |ectly. For examp|
00005f00  6c 65 2c 20 74 68 65 20  63 6f 64 69 6e 67 3a 0d  |le, the coding:.|
00005f10  0a 0d 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |...             |
00005f20  20 20 20 20 20 20 20 20  20 20 7c 6d 34 31 30 37  |          |m4107|
00005f30  36 0d 0a 0d 0a 73 68 6f  77 73 20 74 68 65 20 61  |6....shows the a|
00005f40  64 64 72 65 73 73 20 74  6f 20 62 65 20 61 20 72  |ddress to be a r|
00005f50  65 6c 61 74 69 76 65 20  6f 6e 65 20 6f 66 20 66  |elative one of f|
00005f60  6f 75 72 20 62 79 74 65  73 20 6c 6f 6e 67 2c 20  |our bytes long, |
00005f70  74 68 65 20 61 64 64 72  65 73 73 0d 0a 62 65 69  |the address..bei|
00005f80  6e 67 20 26 31 30 37 36  2e 20 54 68 65 20 65 78  |ng &1076. The ex|
00005f90  65 63 75 74 69 6f 6e 20  61 64 64 72 65 73 73 20  |ecution address |
00005fa0  69 73 20 6e 6f 74 20 61  6c 77 61 79 73 20 67 69  |is not always gi|
00005fb0  76 65 6e 20 69 6e 20 74  68 65 20 66 69 6c 65 20  |ven in the file |
00005fc0  69 74 73 65 6c 66 2c 0d  0a 62 75 74 20 69 66 20  |itself,..but if |
00005fd0  69 74 20 69 73 20 70 72  65 73 65 6e 74 20 69 74  |it is present it|
00005fe0  20 77 69 6c 6c 20 62 65  20 70 72 65 63 65 64 65  | will be precede|
00005ff0  64 20 62 79 20 7c 6e 20  66 6f 72 20 61 20 72 65  |d by |n for a re|
00006000  6c 61 74 69 76 65 20 61  64 64 72 65 73 73 2c 20  |lative address, |
00006010  6f 72 0d 0a 7c 6f 20 66  6f 72 20 61 6e 20 61 62  |or..|o for an ab|
00006020  73 6f 6c 75 74 65 20 61  64 64 72 65 73 73 2e 0d  |solute address..|
00006030  0a 0d 0a 0d 0a 0d 0a 0d  0a 0d 0a 20 20 20 20 20  |...........     |
00006040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006050  20 20 20 20 20 20 20 20  20 20 20 20 50 61 67 65  |            Page|
00006060  20 31 30 0d 0a 0d 0a 0d  0a 0d 0a 0d 0a 0d 0a 0d  | 10.............|
00006070  0a 0d 0a 0d 0a 49 6e 74  65 72 61 63 74 69 76 65  |.....Interactive|
00006080  20 70 72 6f 67 72 61 6d  6d 69 6e 67 20 20 20 20  | programming    |
00006090  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000060a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4a 2e  |              J.|
000060b0  4a 2e 42 72 61 79 73 68  61 77 20 31 39 38 37 0d  |J.Brayshaw 1987.|
000060c0  0a 0d 0a 0d 0a 0d 0a 0d  0a 54 68 65 20 70 72 65  |.........The pre|
000060d0  63 69 73 65 20 66 69 6c  65 6e 61 6d 65 20 63 61  |cise filename ca|
000060e0  6e 20 61 6c 73 6f 20 62  65 20 66 6f 75 6e 64 20  |n also be found |
000060f0  66 72 6f 6d 20 74 68 65  20 66 69 72 73 74 20 70  |from the first p|
00006100  61 67 65 20 6f 66 20 61  0d 0a 74 65 6c 65 73 6f  |age of a..teleso|
00006110  66 74 77 61 72 65 20 66  69 6c 65 2e 20 4c 6f 6f  |ftware file. Loo|
00006120  6b 20 66 6f 72 20 61 20  22 7c 61 22 20 73 65 71  |k for a "|a" seq|
00006130  75 65 6e 63 65 2e 20 54  68 69 73 20 74 65 6c 6c  |uence. This tell|
00006140  73 20 74 68 65 20 64 65  63 6f 64 65 72 20 74 68  |s the decoder th|
00006150  65 0d 0a 66 69 6c 65 6e  61 6d 65 20 28 61 6e 64  |e..filename (and|
00006160  20 73 6f 6d 65 74 69 6d  65 73 20 74 68 65 20 76  | sometimes the v|
00006170  65 72 73 69 6f 6e 20 61  6e 64 20 64 61 74 65 29  |ersion and date)|
00006180  20 66 6f 6c 6c 6f 77 73  2e 0d 0a 0d 0a 54 68 65  | follows.....The|
00006190  20 63 6f 6d 6d 61 6e 64  20 22 7c 61 22 20 69 73  | command "|a" is|
000061a0  20 66 6f 6c 6c 6f 77 65  64 20 62 79 20 61 20 73  | followed by a s|
000061b0  69 6e 67 6c 65 20 64 69  67 69 74 20 67 69 76 69  |ingle digit givi|
000061c0  6e 67 20 74 68 65 20 6e  75 6d 62 65 72 20 6f 66  |ng the number of|
000061d0  20 66 69 65 6c 64 73 0d  0a 28 69 6e 20 74 68 69  | fields..(in thi|
000061e0  73 20 63 61 73 65 2c 20  75 70 20 74 6f 20 33 29  |s case, up to 3)|
000061f0  2e 20 54 68 65 20 66 69  72 73 74 20 66 69 65 6c  |. The first fiel|
00006200  64 20 69 73 20 74 68 65  20 66 69 6c 65 6e 61 6d  |d is the filenam|
00006210  65 2e 20 54 68 65 20 73  65 63 6f 6e 64 2c 0d 0a  |e. The second,..|
00006220  77 68 69 63 68 20 69 73  20 6f 70 74 69 6f 6e 61  |which is optiona|
00006230  6c 2c 20 69 73 20 74 68  65 20 76 65 72 73 69 6f  |l, is the versio|
00006240  6e 20 6e 75 6d 62 65 72  20 6f 66 20 74 68 65 20  |n number of the |
00006250  66 69 6c 65 2e 20 54 68  65 20 74 68 69 72 64 20  |file. The third |
00006260  66 69 65 6c 64 2c 0d 0a  61 6c 73 6f 20 6f 70 74  |field,..also opt|
00006270  69 6f 6e 61 6c 2c 20 69  73 20 74 68 65 20 4d 4a  |ional, is the MJ|
00006280  44 20 28 64 61 74 65 29  20 6f 66 20 74 68 65 20  |D (date) of the |
00006290  66 69 6c 65 2e 20 54 68  69 73 20 69 73 20 6e 6f  |file. This is no|
000062a0  74 20 74 68 65 20 74 72  61 6e 73 6d 69 73 73 69  |t the transmissi|
000062b0  6f 6e 0d 0a 64 61 74 65  2c 20 62 75 74 20 61 20  |on..date, but a |
000062c0  64 61 74 65 20 63 6f 6e  6e 65 63 74 65 64 20 69  |date connected i|
000062d0  6e 20 73 6f 6d 65 20 77  61 79 20 77 69 74 68 20  |n some way with |
000062e0  74 68 65 20 66 69 6c 65  2e 20 46 6f 72 20 65 78  |the file. For ex|
000062f0  61 6d 70 6c 65 2c 0d 0a  0d 0a 20 20 20 20 20 20  |ample,....      |
00006300  20 20 20 20 20 20 20 20  20 20 20 7c 61 33 34 50  |           |a34P|
00006310  72 6f 67 32 32 35 35 34  39 30 32 34 0d 0a 0d 0a  |rog225549024....|
00006320  77 6f 75 6c 64 20 6d 65  61 6e 3a 0d 0a 0d 0a 20  |would mean:.... |
00006330  7c 20 20 20 55 73 65 20  74 68 65 20 45 73 63 61  ||   Use the Esca|
00006340  70 65 64 20 74 61 62 6c  65 20 74 6f 20 64 65 63  |ped table to dec|
00006350  6f 64 65 20 74 68 65 20  66 6f 6c 6c 6f 77 69 6e  |ode the followin|
00006360  67 20 62 79 74 65 0d 0a  20 61 20 20 20 54 68 65  |g byte.. a   The|
00006370  20 45 73 63 61 70 65 20  74 61 62 6c 65 20 64 65  | Escape table de|
00006380  63 6f 64 65 73 20 74 68  69 73 20 74 6f 20 62 65  |codes this to be|
00006390  20 22 54 69 74 6c 65 2c  20 76 65 72 73 69 6f 6e  | "Title, version|
000063a0  20 61 6e 64 20 44 61 74  65 20 66 6f 6c 6c 6f 77  | and Date follow|
000063b0  73 22 0d 0a 20 33 20 20  20 54 68 65 72 65 20 61  |s".. 3   There a|
000063c0  72 65 20 33 20 66 69 65  6c 64 73 20 74 6f 20 74  |re 3 fields to t|
000063d0  68 65 20 63 6f 6d 6d 61  6e 64 0d 0a 20 34 20 20  |he command.. 4  |
000063e0  20 54 68 65 20 66 69 72  73 74 20 66 69 65 6c 64  | The first field|
000063f0  20 69 73 20 34 20 62 79  74 65 73 20 6c 6f 6e 67  | is 4 bytes long|
00006400  0d 0a 20 50 20 20 20 20  7d 20 54 68 65 73 65 20  |.. P    } These |
00006410  66 6f 75 72 0d 0a 20 72  20 20 20 20 7d 20 62 79  |four.. r    } by|
00006420  74 65 73 20 66 6f 72 6d  0d 0a 20 6f 20 20 20 20  |tes form.. o    |
00006430  7d 20 74 68 65 20 66 69  6c 65 0d 0a 20 67 20 20  |} the file.. g  |
00006440  20 20 7d 20 6e 61 6d 65  20 28 22 50 72 6f 67 22  |  } name ("Prog"|
00006450  29 0d 0a 20 32 20 20 20  54 68 65 20 73 65 63 6f  |).. 2   The seco|
00006460  6e 64 20 66 69 65 6c 64  20 69 73 20 32 20 62 79  |nd field is 2 by|
00006470  74 65 73 20 6c 6f 6e 67  0d 0a 20 32 20 20 20 20  |tes long.. 2    |
00006480  7d 20 54 68 65 20 73 65  63 6f 6e 64 20 66 69 65  |} The second fie|
00006490  6c 64 0d 0a 20 35 20 20  20 20 7d 20 28 76 65 72  |ld.. 5    } (ver|
000064a0  73 69 6f 6e 20 6e 75 6d  62 65 72 29 20 69 73 20  |sion number) is |
000064b0  22 32 35 22 0d 0a 20 35  20 20 20 54 68 65 20 74  |"25".. 5   The t|
000064c0  68 69 72 64 20 66 69 65  6c 64 20 69 73 20 35 20  |hird field is 5 |
000064d0  62 79 74 65 73 20 6c 6f  6e 67 0d 0a 20 34 20 20  |bytes long.. 4  |
000064e0  20 20 7d 20 54 68 65 73  65 20 35 20 62 79 74 65  |  } These 5 byte|
000064f0  73 0d 0a 20 39 20 20 20  20 7d 20 67 69 76 65 20  |s.. 9    } give |
00006500  74 68 65 0d 0a 20 30 20  20 20 20 7d 20 74 68 69  |the.. 0    } thi|
00006510  72 64 20 66 69 65 6c 64  0d 0a 20 32 20 20 20 20  |rd field.. 2    |
00006520  7d 20 28 74 68 65 20 4d  6f 64 69 66 69 65 64 0d  |} (the Modified.|
00006530  0a 20 34 20 20 20 20 7d  20 4a 75 6c 69 61 6e 20  |. 4    } Julian |
00006540  44 61 74 65 29 20 61 73  20 22 34 39 30 32 34 22  |Date) as "49024"|
00006550  0d 0a 0d 0a 54 68 69 73  2c 20 74 68 65 72 65 66  |....This, theref|
00006560  6f 72 65 2c 20 67 69 76  65 73 20 74 68 65 20 6d  |ore, gives the m|
00006570  65 61 6e 73 20 74 6f 20  64 6f 77 6e 6c 6f 61 64  |eans to download|
00006580  20 61 6e 79 20 66 69 6c  65 20 66 72 6f 6d 20 61  | any file from a|
00006590  6e 79 20 63 68 61 6e 6e  65 6c 2e 0d 0a 42 65 77  |ny channel...Bew|
000065a0  61 72 65 2c 20 68 6f 77  65 76 65 72 2c 20 61 73  |are, however, as|
000065b0  20 64 6f 77 6e 6c 6f 61  64 69 6e 67 20 66 69 6c  | downloading fil|
000065c0  65 73 20 6e 6f 74 20 69  6e 74 65 6e 64 65 64 20  |es not intended |
000065d0  66 6f 72 20 74 68 65 20  42 42 43 20 6d 69 63 72  |for the BBC micr|
000065e0  6f 20 6d 61 79 0d 0a 6e  6f 74 20 62 65 20 61 73  |o may..not be as|
000065f0  20 73 75 63 63 65 73 73  66 75 6c 20 61 73 20 79  | successful as y|
00006600  6f 75 20 6d 69 67 68 74  20 69 6d 61 67 69 6e 65  |ou might imagine|
00006610  21 0d 0a 0d 0a 0d 0a 0d  0a 0d 0a 0d 0a 0d 0a 0d  |!...............|
00006620  0a 0d 0a 0d 0a 0d 0a 0d  0a 0d 0a 0d 0a 0d 0a 0d  |................|
00006630  0a 0d 0a 0d 0a 20 20 20  20 20 20 20 20 20 20 20  |.....           |
00006640  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00006650  20 20 20 20 20 20 50 61  67 65 20 31 31 0d 0a 0d  |      Page 11...|
00006660  0a 0d 0a 0d 0a                                    |.....|
00006665
ATS/T\ATS06.m0
ATS/T\ATS06.m1
ATS/T\ATS06.m2
ATS/T\ATS06.m4
ATS/T\ATS06.m5