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