Home » CEEFAX disks » telesoftware12.adl » 27-01-89/TFSinfo

27-01-89/TFSinfo

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 » telesoftware12.adl
Filename: 27-01-89/TFSinfo
Read OK:
File size: 5709 bytes
Load address: 0000
Exec address: 0000
File contents
                            TELETEXT SERVER SYSTEM 
 
The system consists of three programs 
 
1.  A basic program 'TFS' which runs in the machine with the teletext  adaptor 
    (henceforth called the SERVER) 
2.  A machine code routine 'code' which is *RUN by the program TFS. 
3.  A  machine  code  program  'TELETEXT'  which  runs  in  the  local machine 
    (henceforth called the CLIENT) 
 
The server and client communicate on ports &B2, &B3, &B4  and  &B5.  The  base 
port  number  of  &B2 is transmitted to the client in accordance with the Find 
Server protocol. It is  possible to write programs  to  communicate  with  the 
TELETEXT-SERVER  using  these ports but it could be that updates of the server 
software may use a different base port number, in  which  case  such  programs 
will cease to work. 
                                        
                             The TELETEXT program 
 
This  locates  at &FFFF6E00 and so should not corrupt any BASIC program in the 
CLIENT's memory. It will work with all versions of the BBC B, B+,  MASTER  and 
ET.  The  program will also communicate with a SERVER across a bridge although 
some of the headers may be lost  as  these  are  broadcast  and  there  is  no 
collision detect across a bridge. 
 
 
1.  The first action is to open a receive block to receive a TELETEXT-SERVER's 
    reply to a find server request. This receive block listens on port &B1  to 
    all stations, as at this stage the CLIENT does not know the station number 
    of the SERVER. 
 
2.  The CLIENT broadcasts to all stations  on  port  &B0  with  a  data  field 
    containing  'TELETEXT' this being the name to which a TELETEXT-SERVER will 
    respond. The first SERVER to respond will be the one with which the CLIENT 
    subsequently  interacts.  Should more than one server be available then it 
    is possible to connect to a specific server by using its station number eg 
    *TELETEXT  2.45.  You  may  wish  to  do  this if you know that one server 
    receives a better signal than another, on the channel you wish to use. 
 
3.  The CLIENT polls the receive block until a SERVER responds or <ESCAPE>  is 
    pressed. 
 
4.  The  CLIENT  reads  the SERVER's reply and stores the SERVER's station and 
    network number. The base port number (&B2) is used to calculate the  ports 
    for  further communication. The CLIENT selects MODE 7, prints the SERVER's 
    station number (suppressing the network number if it is zero) and also the 
    version number. 
 
5.  The  CLIENT  opens three receive blocks. One on port &B5 (base+3) ready to 
    receive any page headers which arrive, one on port  &B2  (base)  ready  to 
    receive  any  SERVER  replies  and one on port &B4 (base+2) to receive any 
    pages. 
 
6.  The CLIENT sends a request for page 1100 (the first  digit  indicates  the 
    channel  number). This is on port &B3 (base+1) with a control byte of &81. 
    The reply receive block is then polled  until  the  SERVER  responds.  The 
    position  in  the queue returned by the SERVER is printed at the bottom of 
    the page. A new receive block for replies on port &B2 is  set  up.  If  an 
    error  occurs  then  the  error  message is displayed at the bottom of the 
    screen and the page input routine is entered or if the error  was  a  'Bad 
    channel' error then the channel input routine is entered. 
 
7.  The  CLIENT  polls  both  receive  blocks  for a page (port &B4) and for a 
    header (port &B5), until one or the other receives a transmission. 
 
8.  If a page header is received then  the  cursor  is  moved  to  the  header 
    position  and it is printed out. An identical receive block is then set up 
    to replace the one which has been used. 
 
9.  If a requested page is received the first action is to  test  the  control 
    byte.  If  this is &80 then it indicates the page has been found and is in 
    the receive block buffer ready to be transferred to  the  screen.  If  the 
    control  byte  is &81 then this indicates some error has occurred and that 
    an error message is in the receive block buffer waiting to be printed. 

10. If  an  error has occurred then the error message is printed at the bottom 
    of the screen and the CLIENT  program  jumps  to  the  page  number  input 
    routine  to get another page number. A new receive block for a page is set 
    up. 
 
11. If a page is successfully received then it is  displayed.  A  new  receive 
    block  for  a  page  is  set  up. The header receive block continues to be 
    polled and displayed until a key is pressed. 
 
12. All  the  time the receive blocks are being polled the CLIENT program also 
    tests to see if a key has been pressed. If a key is pressed this is  taken 
    to  mean  that you are about to request a new page. If 'C' is pressed then 
    the input channel routine is entered followed by the input  page  routine. 
    If  <RETURN>  is  pressed  then  the  last page you requested is requested 
    again. If 'R' is pressed the 'REVEAL' routine is called and  this  toggles 
    between  revealing and concealing. If '*' is pressed then the star command 
    routine is entered. This allows the CLIENT to  *SAVE  pages  etc.  If  any 
    other key is pressed the page input routine is entered. 
 
13. The  first  action taken by both the channel input and page input routines 
    is to send a 'cancel page request' to  the  SERVER  and  then  delete  the 
    current  page  receive block. This means the SERVER will no longer have to 
    bother trying to find your last requested page. The prompt for  a  channel 
    input is 'C' and for a page input is 'P'. Both routines make use of OSWORD 
    0 to read a line of input and so  both  need  to  be  exited  by  pressing 
    <RETURN>.  A new receive page block is set up and then the new page number 
    is transmitted to the SERVER. 
 
14. The escape flag is continually polled so that the CLIENT can exit  at  any 
    time  by  pressing  <ESCAPE>.  This  will send a logoff instruction to the 
    SERVER which stops it looking for any more  pages  for  you.  All  receive 
    blocks are deleted. 
 

                                  Sub-pages 
 
 
One  of  the features of the normal use of teletext is that pages will roll so 
that they are constantly updated eg. for cricket scores  or  pages  with  more 
than one screen of information. An approximation to this facility is available 
from the SERVER. Pressing 'S' will enable the automatic rolling of  sub-pages. 
This  is  done  by  a call to the SERVER which signals that the requested page 
must not be sent until at least 0.5 of the cycle time has  elapsed.  Automatic 
rolling  of  sub-pages  can  be  disabled  by  pressing 'S' again. Enabling is 
signalled by a high beep and disabling by a low beep. The rolling is  disabled 
whenever a new page is requested. 
 
This  implementation  of sub-pages is a compromise in that as more clients use 
this feature the more full will be the  queues  and  it  is  for  this  reason 
automatic rolling must be deliberately selected for every new page. It is also 
not possible to guarantee that you will get the immediately following sub-page 
in the sequence. 
 
                               The TFS program 
 
This program makes as full use as possible of the ATFS rom's ability to search 
for several pages at once. The theoretical maximum is 20 at once but the  size 
of  the  TFS  program  limits this to about 10. The main problem is that it is 
only possible to search for pages on one channel at a time and some way has to 
be found to deal with this. 
 
The  approach adopted is to place a page request into one of 4 queues, one for 
each channel. If the number of pages in a queue exceeds the maximum number  of 
pages  for  which  the  ATFS rom has space then a 'Channel busy' error will be 
returned. This maximum number of pages is the number returned by the max users 
per  channel call. A record is kept of the total number of pages requested and 
this is the queue position returned to the CLIENT ie this is the overall queue 
position and not the position in the queue for a particular channel. 
Whenever a page request is received the whole queue is checked to see if  that 
CLIENT  (identified  by  the  station number) has any other page requested. If 
this is the case then that page is dropped from the  queue.  Thus  it  is  not 
possible  for  a  CLIENT  to request more than one page at once. A cancel page 
request or a logoff will result in all page requests  for  that  CLIENT  being 
dropped from the queue. 
 
The  way  the  ATFS  rom  works means that if you are 3rd in the queue you may 
still receive your page before the CLIENT who is  in  1st  position.  This  is 
probably best illustrated by example. 
 
Suppose the following requests are issued : 
 
Station 12 page 170 on channel 1 
Station 14 page 400 on channel 4 
Station 17 page 123 on channel 1 
 
The  TFS program will select channel 1 as this is the highest priority item in 
the queue. When station 14's request arrives it will be stored  in  the  queue 
for  channel 4. However when station 17's request arrives not only is it added 
to the queue for channel 1 but a record is set up to receive the page if it is 
transmitted. Suppose all these three requests arrive almost simultaneously and 
at the moment the TFS program selects channel 1 the page being transmitted  is 
page  112.  This means that station 17's page (123) will arrive before station 
12's page(170). Thus station 17 will receive it's page first  even  though  it 
was  3rd  in the queue. The next page to be sent will be 170 to station 12 and 
station 14 will receive its page last even though it was  2nd  in  the  queue. 
This  is  not disaster as in fact station 12 has had no longer to wait than it 
would have had anyway. What we have managed to do is also deal with station 17 
as a spin-off from station 1's request. 
 
If  more than one station requests the same page then this is spotted and only 
one of the ATFS records is used. This means that it is possible to  have  more 
than  the  maximum  number  of users per channel queued if that channel is the 
currently selected one. 
 
When an ATFS record has been used the page it was looking  for  is  remembered 
and  once  that page has been found the record is not cleared. This means that 
provided the channel is not changed this page will continue to be updated  and 
will be permanently available. Suppose a CLIENT requests page 171; the page is 
received and then transmitted. If another CLIENT  (or  indeed  the  same  one) 
requests  the  same  page then it is instantly available. This is particularly 
useful if you happen to be the only CLIENT using the system as it  means  that 
the  last  10  or  so pages you have requested on a given channel are not only 
buffered by the TFS program, but also updated and instantly available. 
 
The TFS program broadcasts whatever page number is currently at the top of the 
screen by using the timer crossing zero event. This occurs every half second. 
 
Overall  the  response  time  of  the  system  is  very  fast although it will 
obviously be slowed down if CLIENTs  request  non-existent  pages.  The  cycle 
times  for  the  different channels are important to the efficiency of the TFS 
program and as these times may be subject to change they have been included in 
a  DATA  statement at the very end of the program. The first DATA statement is 
the fraction of the cycle time for which the  TFS  program  will  wait  before 
sending  a sub-page. This is currently 0.5. The second DATA statement consists 
of the cycle times for the four channels in hundredths of a second.  They  are 
currently set to 40 seconds each. 
 
 
                           Installing the programs 
 
 
1.  Place 'TELETEXT' program in $.LIBRARY 
 
2.  Put  'TFS'  and 'code' in a directory of their own. This might be the root 
    directory of a user TFS. If this user has a !BOOT file  which  CHAINs  the 
    'TFS'  program  then  the whole system can be initialised by simply typing 
    *I AM TFS. The machine running the TFS program must not use shadow screens 
    as  the header is POKED in to memory at &7C00 by the ATFS Rom. The program 
    may run in a second  processor,  in  which  case  the  whole  of  the  I/O 
    processor  memory  becomes available for buffering pages and there will be 
    an associated increase in performance. There  is  no  advantage  in  using 
    HIBASIC as the pages are buffered in the I/O processor. 
 

            Compatibility with the GIS adapter under ATS+ Version 1.00
 
The software is compatible with the new GIS teletext adapter although as  this 
connects  to  the  user port rather than the 1MHz Bus the speed of response is 
slightly slower. There appears to be a problem with the routine  to  calculate 
the  checksum of a page in that the GIS Rom gets it wrong if a page header was 
broadcast while performing the check. There does seem to be a problem with the 
MASTER 128 and the TUBE in that the software will not work with either adapter 
in this configuration. This looks like it may be a problem with the ANFS. 
 
                          Writing your own software 
 
Below is an example of a BASIC program which illustrates how to write your own 
software  using  the  SERVER protocols. Using this principle it is possible to 
write programs for automatically receiving and saving pages. 
 
Read the time from a TELETEXT server 
 
  10 osword=&FFF1:osbyte=&FFF4 
  20 DIM blk% &100,buff &100 
  30 REPEAT 
  40                                  :REM Set up receive blk for SERVER reply 
  50 rx_no=FNset_up_rx(&B1,0,buff,&20):REM Listen for all stations as we don't 
  60                                  :REM   know the server station number 
  70 REPEAT 
  80 PROCbcast(&B0,&80,"TELETEXT")    :REM Broadcast for a TELETEXT server 
  90 TIME=0 
 100 REPEAT UNTIL TIME>50             :REM Wait for a while before retrying 
 110 UNTIL FNpoll_rx(rx_no)>127       :REM Keep trying until a reply received 
 120  
 130 PROCread_rx(rx_no)               :REM Read the receive block 
 140 buff?11=13                       :REM Check that it really was a TELETEXT 
 150 UNTIL $(buff+3)="TELETEXT"       :REM   server which responded 
 160 server%=blk%!3 AND &FFFF         :REM Read the server's number 
 170 base_port=buff?1                 :REM Read the base port number 
 180 rx_no=FNset_up_rx(base_port,server%,buff,&20) :REM Set up a receive blk 
 190 REPEAT                                        :REM   for the time 
 200 REPEAT 
 210 PROCtx(&84,base_port+1,server%,buff,1) :REM Transmit request for the time 
 220 TIME=0                           :REM Wait for a while before retrying 
 230 REPEAT UNTIL TIME>50 
 240 result%=FNpoll_tx 
 250 UNTIL result%=0                  :REM Keep trying until transmit succeeds 
 260 UNTIL FNpoll_rx(rx_no)>127       :REM Keep trying until we get a reply 
 270 PROCread_rx(rx_no)               :REM Read the receive block 
 280  
 290 buff?19=13 
 300 date$=$(buff+9)                  :REM Read the date 
 310 buff?9=13 
 320 time$=$(buff+1)                  :REM Read the time 
 330 PRINT"The time is ";time$;" on ";date$ 
 340 END 
 350  
 360 DEFPROCbcast(p%,cb%,server$) 
 370 ?blk%=cb% 
 380 blk%?1=p% 
 390 blk%!2=&FFFF 
 400 $(blk%+4)=server$ 
 410 X%=blk%:Y%=X% DIV 256:A%=&10 
 420 CALL osword 
 430 ENDPROC 
 440  
 450 DEFFNset_up_rx(p%,st%,b%,l%) 
 460 ?blk%=0 
 470 blk%?1=&7F 
 480 blk%?2=p% 
 490 blk%!3=st% 
 500 blk%!5=b% 
 510 blk%!9=b%+l% 
 520 X%=blk%:Y%=X% DIV 256:A%=&11 
 530 CALL osword 
 540 =?blk% 
 550  
 560 DEFFNpoll_rx(r%) 
 570 A%=&33:X%=r% 
 580 =USR(osbyte) AND &8000 
 590  
 600 DEFPROCread_rx(r%) 
 610 ?blk%=r% 
 620 X%=blk%:Y%=X% DIV 256:A%=&11 
 630 CALL osword 
 640 ENDPROC 
 650  
 660 DEFPROCtx(cb%,p%,st%,b%,l%) 
 670 ?blk%=cb% 
 680 blk%?1=p% 
 690 blk%!2=st% 
 700 blk%!4=b% 
 710 blk%!8=b%+l% 
 720 X%=blk%:Y%=X% DIV 256:A%=&10 
 730 CALL osword 
 740 ENDPROC 
 750  
 760 DEFFNpoll_tx 
 770 REPEAT 
 780 A%=&32 
 790 test%=(USR(osbyte) AND &FF00) DIV &100 
 800 UNTIL test%<128 
 810 =test% 
 
 
                              SERVER Extensions 
 
As you  will  find  in  the  protocols  section  of  this  article  a  further 
non-teletext  related  call has been included in the SERVER. This call returns 
the value of the analogue ports. This means various devices can be attached to 
the  analogue  port  of  the  SERVER  and  can be sampled from anywhere on the 
network. We are using this to monitor the outside temperature. 
 
 
                          TELETEXT SERVER PROTOCOLS 
 
All communications between  teleserver  and  client  are  conducted  on  ports 
base-base+3  (currently  &B2-&B5).  Transmissions from client to server are on 
port &B3 and replies from the server are on port &B2. Port &B5 is reserved for 
broadcasting  the  current  page number being picked up by the server and port 
&B4 is used for transmitting the page itself. 
 
It is necessary to use four ports because the client may wish  to  have  three 
receive  blocks  open  at  the  same  time. One to continually update the page 
header, one to request other information and one to receive the page itself. 
 
The page currently being received is broadcast on port &B5 and consists of 4 
bytes: 
 
Byte 1      Channel number in ASCII 
Bytes 2-4   Page number in ASCII 
 
All transmissions to the teleserver will result in a  reply  being  sent.  The 
teleserver  gives  up if a 'Not listening' error occurs 5 times. There are two 
standard forms of reply. 
 
a)  If  an  error  has  occurred (eg you have requested a silly page number or 
    channel number) then the first byte of the reply data  will  be  an  error 
    number  and  the  following bytes will be an error message terminated by a 
    carriage return. 
  
b)  If no error has occurred the first byte of the reply data will be zero and 
    the subsequent bytes will be dependent on the call issued. 
 
read teleserver version number 
 
1/client to teleserver 
 
port           &B3 
control byte   &80 
data           nil 
 
2/teleserver to client 
 
port           &B2 
control byte   &80 
data           0 or error number 
data+1         version  number  as  character  string  terminated  by carriage 
               return. 

issue page request 
 
1/client to teleserver 
 
port           &B3 
control byte   &81 
data           channel number in ASCII 
data+1-data+3  page number in ASCII 
 
2/teleserver to client 
 
port           &B2 
control byte   &81 
data           0 or error number 
data+1         position in queue 
 
cancel page request 
 
1/client to teleserver 
 
port           &B3 
control byte   &82 
data           nil 
 
2/teleserver to client 
 
port           &B2 
control byte   &82 
data           0 or error number 
data+1         nil 
 
read max users per channel 
 
1/client to teleserver 
 
port           &B3 
control byte   &83 
data           nil 
 
2/teleserver to client 
 
port           &B2 
control byte   &83 
data           0 or error number 
data+1         max users 
 
read date and time 
 
1/client to teleserver 
 
port           &B3 
control byte   &84 
data           nil 
 
2/teleserver to client 
 
port           &B2 
control byte   &84 
data           0 or error number 
data+1         time and date in ASCII (HH:MM:SSDD/MM/YYYY) 
 
logoff 
 
1/client to teleserver 
 
port           &B3 
control byte   &85 
data           nil 
 
2/teleserver to client 
 
port           &B2 
control byte   &85 
data           0 or error number 
data+1         nil 
 
page request with time delay 
 
1/client to teleserver 
 
port           &B3 
control byte   &86 
data           channel number in ASCII 
data+1-data+3  page number in ASCII 
 
2/teleserver to client 
 
port           &B2 
control byte   &86 
data           0 or error number 
data+1         position in queue 
 
request port value 
 
1/client to teleserver 
 
port           &B3 
control byte   &87 
data           port number in range 0 to 3 
 
2/teleserver to client 
 
port           &B2 
control byte   &87 
data           0 or error number 
data+1-data+2  port value 
 
 
Reception of the teletext page 
 
The  teleserver sends the page on port &B4. The control byte will be &80 if no 
error has occurred otherwise the control byte will be &81. The only error that 
will  occur  will  be  a  'Timed  out'  error ie you have probably asked for a 
non-existent page. 
The data in the receive block buffer will be the page requested if there is no 
error, otherwise the data will be an error message terminated  by  a  carriage 
return.If  you  successfully  receive a page then locations &3FE and &3FF into 
the receive block buffer will contain the sub page number in BCD format.  &3FE 
contains the hi-byte and &3FF contains the lo-byte 
 
           ======================================================== 
 
ERROR NUMBERS 
 
Possible error numbers are : 
 
1    Bad page number 
2    Bad channel 
3    Channel busy 
4    Time unavailable 
5    Bad port 
 
If an error is received then an error message terminated by a carriage  return 
will be returned in data+1. 
 
The SERVER's receive buffer is &50 bytes. 
 
The  SERVER  transmits  a  block of &400 bytes on port &B3 when transmitting a 
page. It transmits a block of &20 bytes in all other cases. 
 
                       ------------------------------- 

Logging on to the server 
 
Client to Server 
 
port               &B0 
 
control byte       &80 
 
Data               The string TELETEXT as standard ASCII (the server type) 
 
Server to Client 
 
port               &B1 
 
control byte       &80 
 
Data               0 or error number 
Data+1             base port number for further exchanges 
Data+2             binary verison number of the server software 
Data+3             Server type (8 chars, format as for Client to Server) 
Data+11            Length of server name (=0 if not present) 
Data+12            Server name (optional) 
Data+12+NameLen    Server type dependant OR error string  
 
 
The  length  of  the receive block buffer needed to receive this response from 
the server will not exceed &20 bytes. 
00000000  0d 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00000010  20 20 20 20 20 20 20 20  20 20 20 20 20 54 45 4c  |             TEL|
00000020  45 54 45 58 54 20 53 45  52 56 45 52 20 53 59 53  |ETEXT SERVER SYS|
00000030  54 45 4d 20 0d 20 0d 54  68 65 20 73 79 73 74 65  |TEM . .The syste|
00000040  6d 20 63 6f 6e 73 69 73  74 73 20 6f 66 20 74 68  |m consists of th|
00000050  72 65 65 20 70 72 6f 67  72 61 6d 73 20 0d 20 0d  |ree programs . .|
00000060  31 2e 20 20 41 20 62 61  73 69 63 20 70 72 6f 67  |1.  A basic prog|
00000070  72 61 6d 20 27 54 46 53  27 20 77 68 69 63 68 20  |ram 'TFS' which |
00000080  72 75 6e 73 20 69 6e 20  74 68 65 20 6d 61 63 68  |runs in the mach|
00000090  69 6e 65 20 77 69 74 68  20 74 68 65 20 74 65 6c  |ine with the tel|
000000a0  65 74 65 78 74 20 20 61  64 61 70 74 6f 72 20 0d  |etext  adaptor .|
000000b0  20 20 20 20 28 68 65 6e  63 65 66 6f 72 74 68 20  |    (henceforth |
000000c0  63 61 6c 6c 65 64 20 74  68 65 20 53 45 52 56 45  |called the SERVE|
000000d0  52 29 20 0d 32 2e 20 20  41 20 6d 61 63 68 69 6e  |R) .2.  A machin|
000000e0  65 20 63 6f 64 65 20 72  6f 75 74 69 6e 65 20 27  |e code routine '|
000000f0  63 6f 64 65 27 20 77 68  69 63 68 20 69 73 20 2a  |code' which is *|
00000100  52 55 4e 20 62 79 20 74  68 65 20 70 72 6f 67 72  |RUN by the progr|
00000110  61 6d 20 54 46 53 2e 20  0d 33 2e 20 20 41 20 20  |am TFS. .3.  A  |
00000120  6d 61 63 68 69 6e 65 20  20 63 6f 64 65 20 20 70  |machine  code  p|
00000130  72 6f 67 72 61 6d 20 20  27 54 45 4c 45 54 45 58  |rogram  'TELETEX|
00000140  54 27 20 20 77 68 69 63  68 20 20 72 75 6e 73 20  |T'  which  runs |
00000150  20 69 6e 20 20 74 68 65  20 20 6c 6f 63 61 6c 20  | in  the  local |
00000160  6d 61 63 68 69 6e 65 20  0d 20 20 20 20 28 68 65  |machine .    (he|
00000170  6e 63 65 66 6f 72 74 68  20 63 61 6c 6c 65 64 20  |nceforth called |
00000180  74 68 65 20 43 4c 49 45  4e 54 29 20 0d 20 0d 54  |the CLIENT) . .T|
00000190  68 65 20 73 65 72 76 65  72 20 61 6e 64 20 63 6c  |he server and cl|
000001a0  69 65 6e 74 20 63 6f 6d  6d 75 6e 69 63 61 74 65  |ient communicate|
000001b0  20 6f 6e 20 70 6f 72 74  73 20 26 42 32 2c 20 26  | on ports &B2, &|
000001c0  42 33 2c 20 26 42 34 20  20 61 6e 64 20 20 26 42  |B3, &B4  and  &B|
000001d0  35 2e 20 20 54 68 65 20  20 62 61 73 65 20 0d 70  |5.  The  base .p|
000001e0  6f 72 74 20 20 6e 75 6d  62 65 72 20 20 6f 66 20  |ort  number  of |
000001f0  20 26 42 32 20 69 73 20  74 72 61 6e 73 6d 69 74  | &B2 is transmit|
00000200  74 65 64 20 74 6f 20 74  68 65 20 63 6c 69 65 6e  |ted to the clien|
00000210  74 20 69 6e 20 61 63 63  6f 72 64 61 6e 63 65 20  |t in accordance |
00000220  77 69 74 68 20 74 68 65  20 46 69 6e 64 20 0d 53  |with the Find .S|
00000230  65 72 76 65 72 20 70 72  6f 74 6f 63 6f 6c 2e 20  |erver protocol. |
00000240  49 74 20 69 73 20 20 70  6f 73 73 69 62 6c 65 20  |It is  possible |
00000250  74 6f 20 77 72 69 74 65  20 70 72 6f 67 72 61 6d  |to write program|
00000260  73 20 20 74 6f 20 20 63  6f 6d 6d 75 6e 69 63 61  |s  to  communica|
00000270  74 65 20 20 77 69 74 68  20 20 74 68 65 20 0d 54  |te  with  the .T|
00000280  45 4c 45 54 45 58 54 2d  53 45 52 56 45 52 20 20  |ELETEXT-SERVER  |
00000290  75 73 69 6e 67 20 20 74  68 65 73 65 20 70 6f 72  |using  these por|
000002a0  74 73 20 62 75 74 20 69  74 20 63 6f 75 6c 64 20  |ts but it could |
000002b0  62 65 20 74 68 61 74 20  75 70 64 61 74 65 73 20  |be that updates |
000002c0  6f 66 20 74 68 65 20 73  65 72 76 65 72 20 0d 73  |of the server .s|
000002d0  6f 66 74 77 61 72 65 20  6d 61 79 20 75 73 65 20  |oftware may use |
000002e0  61 20 64 69 66 66 65 72  65 6e 74 20 62 61 73 65  |a different base|
000002f0  20 70 6f 72 74 20 6e 75  6d 62 65 72 2c 20 69 6e  | port number, in|
00000300  20 20 77 68 69 63 68 20  20 63 61 73 65 20 20 73  |  which  case  s|
00000310  75 63 68 20 20 70 72 6f  67 72 61 6d 73 20 0d 77  |uch  programs .w|
00000320  69 6c 6c 20 63 65 61 73  65 20 74 6f 20 77 6f 72  |ill cease to wor|
00000330  6b 2e 20 0d 20 20 20 20  20 20 20 20 20 20 20 20  |k. .            |
00000340  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000350  20 20 20 20 20 20 20 20  20 20 20 20 0d 20 20 20  |            .   |
00000360  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000370  20 20 20 20 20 20 20 20  20 20 54 68 65 20 54 45  |          The TE|
00000380  4c 45 54 45 58 54 20 70  72 6f 67 72 61 6d 20 0d  |LETEXT program .|
00000390  20 0d 54 68 69 73 20 20  6c 6f 63 61 74 65 73 20  | .This  locates |
000003a0  20 61 74 20 26 46 46 46  46 36 45 30 30 20 61 6e  | at &FFFF6E00 an|
000003b0  64 20 73 6f 20 73 68 6f  75 6c 64 20 6e 6f 74 20  |d so should not |
000003c0  63 6f 72 72 75 70 74 20  61 6e 79 20 42 41 53 49  |corrupt any BASI|
000003d0  43 20 70 72 6f 67 72 61  6d 20 69 6e 20 74 68 65  |C program in the|
000003e0  20 0d 43 4c 49 45 4e 54  27 73 20 6d 65 6d 6f 72  | .CLIENT's memor|
000003f0  79 2e 20 49 74 20 77 69  6c 6c 20 77 6f 72 6b 20  |y. It will work |
00000400  77 69 74 68 20 61 6c 6c  20 76 65 72 73 69 6f 6e  |with all version|
00000410  73 20 6f 66 20 74 68 65  20 42 42 43 20 42 2c 20  |s of the BBC B, |
00000420  42 2b 2c 20 20 4d 41 53  54 45 52 20 20 61 6e 64  |B+,  MASTER  and|
00000430  20 0d 45 54 2e 20 20 54  68 65 20 20 70 72 6f 67  | .ET.  The  prog|
00000440  72 61 6d 20 77 69 6c 6c  20 61 6c 73 6f 20 63 6f  |ram will also co|
00000450  6d 6d 75 6e 69 63 61 74  65 20 77 69 74 68 20 61  |mmunicate with a|
00000460  20 53 45 52 56 45 52 20  61 63 72 6f 73 73 20 61  | SERVER across a|
00000470  20 62 72 69 64 67 65 20  61 6c 74 68 6f 75 67 68  | bridge although|
00000480  20 0d 73 6f 6d 65 20 6f  66 20 74 68 65 20 68 65  | .some of the he|
00000490  61 64 65 72 73 20 6d 61  79 20 62 65 20 6c 6f 73  |aders may be los|
000004a0  74 20 20 61 73 20 20 74  68 65 73 65 20 20 61 72  |t  as  these  ar|
000004b0  65 20 20 62 72 6f 61 64  63 61 73 74 20 20 61 6e  |e  broadcast  an|
000004c0  64 20 20 74 68 65 72 65  20 20 69 73 20 20 6e 6f  |d  there  is  no|
000004d0  20 0d 63 6f 6c 6c 69 73  69 6f 6e 20 64 65 74 65  | .collision dete|
000004e0  63 74 20 61 63 72 6f 73  73 20 61 20 62 72 69 64  |ct across a brid|
000004f0  67 65 2e 20 0d 20 0d 20  0d 31 2e 20 20 54 68 65  |ge. . . .1.  The|
00000500  20 66 69 72 73 74 20 61  63 74 69 6f 6e 20 69 73  | first action is|
00000510  20 74 6f 20 6f 70 65 6e  20 61 20 72 65 63 65 69  | to open a recei|
00000520  76 65 20 62 6c 6f 63 6b  20 74 6f 20 72 65 63 65  |ve block to rece|
00000530  69 76 65 20 61 20 54 45  4c 45 54 45 58 54 2d 53  |ive a TELETEXT-S|
00000540  45 52 56 45 52 27 73 20  0d 20 20 20 20 72 65 70  |ERVER's .    rep|
00000550  6c 79 20 74 6f 20 61 20  66 69 6e 64 20 73 65 72  |ly to a find ser|
00000560  76 65 72 20 72 65 71 75  65 73 74 2e 20 54 68 69  |ver request. Thi|
00000570  73 20 72 65 63 65 69 76  65 20 62 6c 6f 63 6b 20  |s receive block |
00000580  6c 69 73 74 65 6e 73 20  6f 6e 20 70 6f 72 74 20  |listens on port |
00000590  26 42 31 20 20 74 6f 20  0d 20 20 20 20 61 6c 6c  |&B1  to .    all|
000005a0  20 73 74 61 74 69 6f 6e  73 2c 20 61 73 20 61 74  | stations, as at|
000005b0  20 74 68 69 73 20 73 74  61 67 65 20 74 68 65 20  | this stage the |
000005c0  43 4c 49 45 4e 54 20 64  6f 65 73 20 6e 6f 74 20  |CLIENT does not |
000005d0  6b 6e 6f 77 20 74 68 65  20 73 74 61 74 69 6f 6e  |know the station|
000005e0  20 6e 75 6d 62 65 72 20  0d 20 20 20 20 6f 66 20  | number .    of |
000005f0  74 68 65 20 53 45 52 56  45 52 2e 20 0d 20 0d 32  |the SERVER. . .2|
00000600  2e 20 20 54 68 65 20 43  4c 49 45 4e 54 20 62 72  |.  The CLIENT br|
00000610  6f 61 64 63 61 73 74 73  20 74 6f 20 61 6c 6c 20  |oadcasts to all |
00000620  73 74 61 74 69 6f 6e 73  20 20 6f 6e 20 20 70 6f  |stations  on  po|
00000630  72 74 20 20 26 42 30 20  20 77 69 74 68 20 20 61  |rt  &B0  with  a|
00000640  20 20 64 61 74 61 20 20  66 69 65 6c 64 20 0d 20  |  data  field . |
00000650  20 20 20 63 6f 6e 74 61  69 6e 69 6e 67 20 20 27  |   containing  '|
00000660  54 45 4c 45 54 45 58 54  27 20 74 68 69 73 20 62  |TELETEXT' this b|
00000670  65 69 6e 67 20 74 68 65  20 6e 61 6d 65 20 74 6f  |eing the name to|
00000680  20 77 68 69 63 68 20 61  20 54 45 4c 45 54 45 58  | which a TELETEX|
00000690  54 2d 53 45 52 56 45 52  20 77 69 6c 6c 20 0d 20  |T-SERVER will . |
000006a0  20 20 20 72 65 73 70 6f  6e 64 2e 20 54 68 65 20  |   respond. The |
000006b0  66 69 72 73 74 20 53 45  52 56 45 52 20 74 6f 20  |first SERVER to |
000006c0  72 65 73 70 6f 6e 64 20  77 69 6c 6c 20 62 65 20  |respond will be |
000006d0  74 68 65 20 6f 6e 65 20  77 69 74 68 20 77 68 69  |the one with whi|
000006e0  63 68 20 74 68 65 20 43  4c 49 45 4e 54 20 0d 20  |ch the CLIENT . |
000006f0  20 20 20 73 75 62 73 65  71 75 65 6e 74 6c 79 20  |   subsequently |
00000700  20 69 6e 74 65 72 61 63  74 73 2e 20 20 53 68 6f  | interacts.  Sho|
00000710  75 6c 64 20 6d 6f 72 65  20 74 68 61 6e 20 6f 6e  |uld more than on|
00000720  65 20 73 65 72 76 65 72  20 62 65 20 61 76 61 69  |e server be avai|
00000730  6c 61 62 6c 65 20 74 68  65 6e 20 69 74 20 0d 20  |lable then it . |
00000740  20 20 20 69 73 20 70 6f  73 73 69 62 6c 65 20 74  |   is possible t|
00000750  6f 20 63 6f 6e 6e 65 63  74 20 74 6f 20 61 20 73  |o connect to a s|
00000760  70 65 63 69 66 69 63 20  73 65 72 76 65 72 20 62  |pecific server b|
00000770  79 20 75 73 69 6e 67 20  69 74 73 20 73 74 61 74  |y using its stat|
00000780  69 6f 6e 20 6e 75 6d 62  65 72 20 65 67 20 0d 20  |ion number eg . |
00000790  20 20 20 2a 54 45 4c 45  54 45 58 54 20 20 32 2e  |   *TELETEXT  2.|
000007a0  34 35 2e 20 20 59 6f 75  20 20 6d 61 79 20 20 77  |45.  You  may  w|
000007b0  69 73 68 20 20 74 6f 20  20 64 6f 20 20 74 68 69  |ish  to  do  thi|
000007c0  73 20 69 66 20 79 6f 75  20 6b 6e 6f 77 20 74 68  |s if you know th|
000007d0  61 74 20 6f 6e 65 20 73  65 72 76 65 72 20 0d 20  |at one server . |
000007e0  20 20 20 72 65 63 65 69  76 65 73 20 61 20 62 65  |   receives a be|
000007f0  74 74 65 72 20 73 69 67  6e 61 6c 20 74 68 61 6e  |tter signal than|
00000800  20 61 6e 6f 74 68 65 72  2c 20 6f 6e 20 74 68 65  | another, on the|
00000810  20 63 68 61 6e 6e 65 6c  20 79 6f 75 20 77 69 73  | channel you wis|
00000820  68 20 74 6f 20 75 73 65  2e 20 0d 20 0d 33 2e 20  |h to use. . .3. |
00000830  20 54 68 65 20 43 4c 49  45 4e 54 20 70 6f 6c 6c  | The CLIENT poll|
00000840  73 20 74 68 65 20 72 65  63 65 69 76 65 20 62 6c  |s the receive bl|
00000850  6f 63 6b 20 75 6e 74 69  6c 20 61 20 53 45 52 56  |ock until a SERV|
00000860  45 52 20 72 65 73 70 6f  6e 64 73 20 6f 72 20 3c  |ER responds or <|
00000870  45 53 43 41 50 45 3e 20  20 69 73 20 0d 20 20 20  |ESCAPE>  is .   |
00000880  20 70 72 65 73 73 65 64  2e 20 0d 20 0d 34 2e 20  | pressed. . .4. |
00000890  20 54 68 65 20 20 43 4c  49 45 4e 54 20 20 72 65  | The  CLIENT  re|
000008a0  61 64 73 20 20 74 68 65  20 53 45 52 56 45 52 27  |ads  the SERVER'|
000008b0  73 20 72 65 70 6c 79 20  61 6e 64 20 73 74 6f 72  |s reply and stor|
000008c0  65 73 20 74 68 65 20 53  45 52 56 45 52 27 73 20  |es the SERVER's |
000008d0  73 74 61 74 69 6f 6e 20  61 6e 64 20 0d 20 20 20  |station and .   |
000008e0  20 6e 65 74 77 6f 72 6b  20 6e 75 6d 62 65 72 2e  | network number.|
000008f0  20 54 68 65 20 62 61 73  65 20 70 6f 72 74 20 6e  | The base port n|
00000900  75 6d 62 65 72 20 28 26  42 32 29 20 69 73 20 75  |umber (&B2) is u|
00000910  73 65 64 20 74 6f 20 63  61 6c 63 75 6c 61 74 65  |sed to calculate|
00000920  20 74 68 65 20 20 70 6f  72 74 73 20 0d 20 20 20  | the  ports .   |
00000930  20 66 6f 72 20 20 66 75  72 74 68 65 72 20 63 6f  | for  further co|
00000940  6d 6d 75 6e 69 63 61 74  69 6f 6e 2e 20 54 68 65  |mmunication. The|
00000950  20 43 4c 49 45 4e 54 20  73 65 6c 65 63 74 73 20  | CLIENT selects |
00000960  4d 4f 44 45 20 37 2c 20  70 72 69 6e 74 73 20 74  |MODE 7, prints t|
00000970  68 65 20 53 45 52 56 45  52 27 73 20 0d 20 20 20  |he SERVER's .   |
00000980  20 73 74 61 74 69 6f 6e  20 6e 75 6d 62 65 72 20  | station number |
00000990  28 73 75 70 70 72 65 73  73 69 6e 67 20 74 68 65  |(suppressing the|
000009a0  20 6e 65 74 77 6f 72 6b  20 6e 75 6d 62 65 72 20  | network number |
000009b0  69 66 20 69 74 20 69 73  20 7a 65 72 6f 29 20 61  |if it is zero) a|
000009c0  6e 64 20 61 6c 73 6f 20  74 68 65 20 0d 20 20 20  |nd also the .   |
000009d0  20 76 65 72 73 69 6f 6e  20 6e 75 6d 62 65 72 2e  | version number.|
000009e0  20 0d 20 0d 35 2e 20 20  54 68 65 20 20 43 4c 49  | . .5.  The  CLI|
000009f0  45 4e 54 20 20 6f 70 65  6e 73 20 74 68 72 65 65  |ENT  opens three|
00000a00  20 72 65 63 65 69 76 65  20 62 6c 6f 63 6b 73 2e  | receive blocks.|
00000a10  20 4f 6e 65 20 6f 6e 20  70 6f 72 74 20 26 42 35  | One on port &B5|
00000a20  20 28 62 61 73 65 2b 33  29 20 72 65 61 64 79 20  | (base+3) ready |
00000a30  74 6f 20 0d 20 20 20 20  72 65 63 65 69 76 65 20  |to .    receive |
00000a40  61 6e 79 20 70 61 67 65  20 68 65 61 64 65 72 73  |any page headers|
00000a50  20 77 68 69 63 68 20 61  72 72 69 76 65 2c 20 6f  | which arrive, o|
00000a60  6e 65 20 6f 6e 20 70 6f  72 74 20 20 26 42 32 20  |ne on port  &B2 |
00000a70  20 28 62 61 73 65 29 20  20 72 65 61 64 79 20 20  | (base)  ready  |
00000a80  74 6f 20 0d 20 20 20 20  72 65 63 65 69 76 65 20  |to .    receive |
00000a90  20 61 6e 79 20 20 53 45  52 56 45 52 20 20 72 65  | any  SERVER  re|
00000aa0  70 6c 69 65 73 20 20 61  6e 64 20 6f 6e 65 20 6f  |plies  and one o|
00000ab0  6e 20 70 6f 72 74 20 26  42 34 20 28 62 61 73 65  |n port &B4 (base|
00000ac0  2b 32 29 20 74 6f 20 72  65 63 65 69 76 65 20 61  |+2) to receive a|
00000ad0  6e 79 20 0d 20 20 20 20  70 61 67 65 73 2e 20 0d  |ny .    pages. .|
00000ae0  20 0d 36 2e 20 20 54 68  65 20 43 4c 49 45 4e 54  | .6.  The CLIENT|
00000af0  20 73 65 6e 64 73 20 61  20 72 65 71 75 65 73 74  | sends a request|
00000b00  20 66 6f 72 20 70 61 67  65 20 31 31 30 30 20 28  | for page 1100 (|
00000b10  74 68 65 20 66 69 72 73  74 20 20 64 69 67 69 74  |the first  digit|
00000b20  20 20 69 6e 64 69 63 61  74 65 73 20 20 74 68 65  |  indicates  the|
00000b30  20 0d 20 20 20 20 63 68  61 6e 6e 65 6c 20 20 6e  | .    channel  n|
00000b40  75 6d 62 65 72 29 2e 20  54 68 69 73 20 69 73 20  |umber). This is |
00000b50  6f 6e 20 70 6f 72 74 20  26 42 33 20 28 62 61 73  |on port &B3 (bas|
00000b60  65 2b 31 29 20 77 69 74  68 20 61 20 63 6f 6e 74  |e+1) with a cont|
00000b70  72 6f 6c 20 62 79 74 65  20 6f 66 20 26 38 31 2e  |rol byte of &81.|
00000b80  20 0d 20 20 20 20 54 68  65 20 72 65 70 6c 79 20  | .    The reply |
00000b90  72 65 63 65 69 76 65 20  62 6c 6f 63 6b 20 69 73  |receive block is|
00000ba0  20 74 68 65 6e 20 70 6f  6c 6c 65 64 20 20 75 6e  | then polled  un|
00000bb0  74 69 6c 20 20 74 68 65  20 20 53 45 52 56 45 52  |til  the  SERVER|
00000bc0  20 20 72 65 73 70 6f 6e  64 73 2e 20 20 54 68 65  |  responds.  The|
00000bd0  20 0d 20 20 20 20 70 6f  73 69 74 69 6f 6e 20 20  | .    position  |
00000be0  69 6e 20 20 74 68 65 20  71 75 65 75 65 20 72 65  |in  the queue re|
00000bf0  74 75 72 6e 65 64 20 62  79 20 74 68 65 20 53 45  |turned by the SE|
00000c00  52 56 45 52 20 69 73 20  70 72 69 6e 74 65 64 20  |RVER is printed |
00000c10  61 74 20 74 68 65 20 62  6f 74 74 6f 6d 20 6f 66  |at the bottom of|
00000c20  20 0d 20 20 20 20 74 68  65 20 70 61 67 65 2e 20  | .    the page. |
00000c30  41 20 6e 65 77 20 72 65  63 65 69 76 65 20 62 6c  |A new receive bl|
00000c40  6f 63 6b 20 66 6f 72 20  72 65 70 6c 69 65 73 20  |ock for replies |
00000c50  6f 6e 20 70 6f 72 74 20  26 42 32 20 69 73 20 20  |on port &B2 is  |
00000c60  73 65 74 20 20 75 70 2e  20 20 49 66 20 20 61 6e  |set  up.  If  an|
00000c70  20 0d 20 20 20 20 65 72  72 6f 72 20 20 6f 63 63  | .    error  occ|
00000c80  75 72 73 20 20 74 68 65  6e 20 20 74 68 65 20 20  |urs  then  the  |
00000c90  65 72 72 6f 72 20 20 6d  65 73 73 61 67 65 20 69  |error  message i|
00000ca0  73 20 64 69 73 70 6c 61  79 65 64 20 61 74 20 74  |s displayed at t|
00000cb0  68 65 20 62 6f 74 74 6f  6d 20 6f 66 20 74 68 65  |he bottom of the|
00000cc0  20 0d 20 20 20 20 73 63  72 65 65 6e 20 61 6e 64  | .    screen and|
00000cd0  20 74 68 65 20 70 61 67  65 20 69 6e 70 75 74 20  | the page input |
00000ce0  72 6f 75 74 69 6e 65 20  69 73 20 65 6e 74 65 72  |routine is enter|
00000cf0  65 64 20 6f 72 20 69 66  20 74 68 65 20 65 72 72  |ed or if the err|
00000d00  6f 72 20 20 77 61 73 20  20 61 20 20 27 42 61 64  |or  was  a  'Bad|
00000d10  20 0d 20 20 20 20 63 68  61 6e 6e 65 6c 27 20 65  | .    channel' e|
00000d20  72 72 6f 72 20 74 68 65  6e 20 74 68 65 20 63 68  |rror then the ch|
00000d30  61 6e 6e 65 6c 20 69 6e  70 75 74 20 72 6f 75 74  |annel input rout|
00000d40  69 6e 65 20 69 73 20 65  6e 74 65 72 65 64 2e 20  |ine is entered. |
00000d50  0d 20 0d 37 2e 20 20 54  68 65 20 20 43 4c 49 45  |. .7.  The  CLIE|
00000d60  4e 54 20 20 70 6f 6c 6c  73 20 20 62 6f 74 68 20  |NT  polls  both |
00000d70  20 72 65 63 65 69 76 65  20 20 62 6c 6f 63 6b 73  | receive  blocks|
00000d80  20 20 66 6f 72 20 61 20  70 61 67 65 20 28 70 6f  |  for a page (po|
00000d90  72 74 20 26 42 34 29 20  61 6e 64 20 66 6f 72 20  |rt &B4) and for |
00000da0  61 20 0d 20 20 20 20 68  65 61 64 65 72 20 28 70  |a .    header (p|
00000db0  6f 72 74 20 26 42 35 29  2c 20 75 6e 74 69 6c 20  |ort &B5), until |
00000dc0  6f 6e 65 20 6f 72 20 74  68 65 20 6f 74 68 65 72  |one or the other|
00000dd0  20 72 65 63 65 69 76 65  73 20 61 20 74 72 61 6e  | receives a tran|
00000de0  73 6d 69 73 73 69 6f 6e  2e 20 0d 20 0d 38 2e 20  |smission. . .8. |
00000df0  20 49 66 20 61 20 70 61  67 65 20 68 65 61 64 65  | If a page heade|
00000e00  72 20 69 73 20 72 65 63  65 69 76 65 64 20 74 68  |r is received th|
00000e10  65 6e 20 20 74 68 65 20  20 63 75 72 73 6f 72 20  |en  the  cursor |
00000e20  20 69 73 20 20 6d 6f 76  65 64 20 20 74 6f 20 20  | is  moved  to  |
00000e30  74 68 65 20 20 68 65 61  64 65 72 20 0d 20 20 20  |the  header .   |
00000e40  20 70 6f 73 69 74 69 6f  6e 20 20 61 6e 64 20 69  | position  and i|
00000e50  74 20 69 73 20 70 72 69  6e 74 65 64 20 6f 75 74  |t is printed out|
00000e60  2e 20 41 6e 20 69 64 65  6e 74 69 63 61 6c 20 72  |. An identical r|
00000e70  65 63 65 69 76 65 20 62  6c 6f 63 6b 20 69 73 20  |eceive block is |
00000e80  74 68 65 6e 20 73 65 74  20 75 70 20 0d 20 20 20  |then set up .   |
00000e90  20 74 6f 20 72 65 70 6c  61 63 65 20 74 68 65 20  | to replace the |
00000ea0  6f 6e 65 20 77 68 69 63  68 20 68 61 73 20 62 65  |one which has be|
00000eb0  65 6e 20 75 73 65 64 2e  20 0d 20 0d 39 2e 20 20  |en used. . .9.  |
00000ec0  49 66 20 61 20 72 65 71  75 65 73 74 65 64 20 70  |If a requested p|
00000ed0  61 67 65 20 69 73 20 72  65 63 65 69 76 65 64 20  |age is received |
00000ee0  74 68 65 20 66 69 72 73  74 20 61 63 74 69 6f 6e  |the first action|
00000ef0  20 69 73 20 74 6f 20 20  74 65 73 74 20 20 74 68  | is to  test  th|
00000f00  65 20 20 63 6f 6e 74 72  6f 6c 20 0d 20 20 20 20  |e  control .    |
00000f10  62 79 74 65 2e 20 20 49  66 20 20 74 68 69 73 20  |byte.  If  this |
00000f20  69 73 20 26 38 30 20 74  68 65 6e 20 69 74 20 69  |is &80 then it i|
00000f30  6e 64 69 63 61 74 65 73  20 74 68 65 20 70 61 67  |ndicates the pag|
00000f40  65 20 68 61 73 20 62 65  65 6e 20 66 6f 75 6e 64  |e has been found|
00000f50  20 61 6e 64 20 69 73 20  69 6e 20 0d 20 20 20 20  | and is in .    |
00000f60  74 68 65 20 72 65 63 65  69 76 65 20 62 6c 6f 63  |the receive bloc|
00000f70  6b 20 62 75 66 66 65 72  20 72 65 61 64 79 20 74  |k buffer ready t|
00000f80  6f 20 62 65 20 74 72 61  6e 73 66 65 72 72 65 64  |o be transferred|
00000f90  20 74 6f 20 20 74 68 65  20 20 73 63 72 65 65 6e  | to  the  screen|
00000fa0  2e 20 20 49 66 20 20 74  68 65 20 0d 20 20 20 20  |.  If  the .    |
00000fb0  63 6f 6e 74 72 6f 6c 20  20 62 79 74 65 20 20 69  |control  byte  i|
00000fc0  73 20 26 38 31 20 74 68  65 6e 20 74 68 69 73 20  |s &81 then this |
00000fd0  69 6e 64 69 63 61 74 65  73 20 73 6f 6d 65 20 65  |indicates some e|
00000fe0  72 72 6f 72 20 68 61 73  20 6f 63 63 75 72 72 65  |rror has occurre|
00000ff0  64 20 61 6e 64 20 74 68  61 74 20 0d 20 20 20 20  |d and that .    |
00001000  61 6e 20 65 72 72 6f 72  20 6d 65 73 73 61 67 65  |an error message|
00001010  20 69 73 20 69 6e 20 74  68 65 20 72 65 63 65 69  | is in the recei|
00001020  76 65 20 62 6c 6f 63 6b  20 62 75 66 66 65 72 20  |ve block buffer |
00001030  77 61 69 74 69 6e 67 20  74 6f 20 62 65 20 70 72  |waiting to be pr|
00001040  69 6e 74 65 64 2e 20 0d  0d 31 30 2e 20 49 66 20  |inted. ..10. If |
00001050  20 61 6e 20 20 65 72 72  6f 72 20 68 61 73 20 6f  | an  error has o|
00001060  63 63 75 72 72 65 64 20  74 68 65 6e 20 74 68 65  |ccurred then the|
00001070  20 65 72 72 6f 72 20 6d  65 73 73 61 67 65 20 69  | error message i|
00001080  73 20 70 72 69 6e 74 65  64 20 61 74 20 74 68 65  |s printed at the|
00001090  20 62 6f 74 74 6f 6d 20  0d 20 20 20 20 6f 66 20  | bottom .    of |
000010a0  74 68 65 20 73 63 72 65  65 6e 20 61 6e 64 20 74  |the screen and t|
000010b0  68 65 20 43 4c 49 45 4e  54 20 20 70 72 6f 67 72  |he CLIENT  progr|
000010c0  61 6d 20 20 6a 75 6d 70  73 20 20 74 6f 20 20 74  |am  jumps  to  t|
000010d0  68 65 20 20 70 61 67 65  20 20 6e 75 6d 62 65 72  |he  page  number|
000010e0  20 20 69 6e 70 75 74 20  0d 20 20 20 20 72 6f 75  |  input .    rou|
000010f0  74 69 6e 65 20 20 74 6f  20 67 65 74 20 61 6e 6f  |tine  to get ano|
00001100  74 68 65 72 20 70 61 67  65 20 6e 75 6d 62 65 72  |ther page number|
00001110  2e 20 41 20 6e 65 77 20  72 65 63 65 69 76 65 20  |. A new receive |
00001120  62 6c 6f 63 6b 20 66 6f  72 20 61 20 70 61 67 65  |block for a page|
00001130  20 69 73 20 73 65 74 20  0d 20 20 20 20 75 70 2e  | is set .    up.|
00001140  20 0d 20 0d 31 31 2e 20  49 66 20 61 20 70 61 67  | . .11. If a pag|
00001150  65 20 69 73 20 73 75 63  63 65 73 73 66 75 6c 6c  |e is successfull|
00001160  79 20 72 65 63 65 69 76  65 64 20 74 68 65 6e 20  |y received then |
00001170  69 74 20 69 73 20 20 64  69 73 70 6c 61 79 65 64  |it is  displayed|
00001180  2e 20 20 41 20 20 6e 65  77 20 20 72 65 63 65 69  |.  A  new  recei|
00001190  76 65 20 0d 20 20 20 20  62 6c 6f 63 6b 20 20 66  |ve .    block  f|
000011a0  6f 72 20 20 61 20 20 70  61 67 65 20 20 69 73 20  |or  a  page  is |
000011b0  20 73 65 74 20 20 75 70  2e 20 54 68 65 20 68 65  | set  up. The he|
000011c0  61 64 65 72 20 72 65 63  65 69 76 65 20 62 6c 6f  |ader receive blo|
000011d0  63 6b 20 63 6f 6e 74 69  6e 75 65 73 20 74 6f 20  |ck continues to |
000011e0  62 65 20 0d 20 20 20 20  70 6f 6c 6c 65 64 20 61  |be .    polled a|
000011f0  6e 64 20 64 69 73 70 6c  61 79 65 64 20 75 6e 74  |nd displayed unt|
00001200  69 6c 20 61 20 6b 65 79  20 69 73 20 70 72 65 73  |il a key is pres|
00001210  73 65 64 2e 20 0d 20 0d  31 32 2e 20 41 6c 6c 20  |sed. . .12. All |
00001220  20 74 68 65 20 20 74 69  6d 65 20 74 68 65 20 72  | the  time the r|
00001230  65 63 65 69 76 65 20 62  6c 6f 63 6b 73 20 61 72  |eceive blocks ar|
00001240  65 20 62 65 69 6e 67 20  70 6f 6c 6c 65 64 20 74  |e being polled t|
00001250  68 65 20 43 4c 49 45 4e  54 20 70 72 6f 67 72 61  |he CLIENT progra|
00001260  6d 20 61 6c 73 6f 20 0d  20 20 20 20 74 65 73 74  |m also .    test|
00001270  73 20 74 6f 20 73 65 65  20 69 66 20 61 20 6b 65  |s to see if a ke|
00001280  79 20 68 61 73 20 62 65  65 6e 20 70 72 65 73 73  |y has been press|
00001290  65 64 2e 20 49 66 20 61  20 6b 65 79 20 69 73 20  |ed. If a key is |
000012a0  70 72 65 73 73 65 64 20  74 68 69 73 20 69 73 20  |pressed this is |
000012b0  20 74 61 6b 65 6e 20 0d  20 20 20 20 74 6f 20 20  | taken .    to  |
000012c0  6d 65 61 6e 20 20 74 68  61 74 20 79 6f 75 20 61  |mean  that you a|
000012d0  72 65 20 61 62 6f 75 74  20 74 6f 20 72 65 71 75  |re about to requ|
000012e0  65 73 74 20 61 20 6e 65  77 20 70 61 67 65 2e 20  |est a new page. |
000012f0  49 66 20 27 43 27 20 69  73 20 70 72 65 73 73 65  |If 'C' is presse|
00001300  64 20 74 68 65 6e 20 0d  20 20 20 20 74 68 65 20  |d then .    the |
00001310  69 6e 70 75 74 20 63 68  61 6e 6e 65 6c 20 72 6f  |input channel ro|
00001320  75 74 69 6e 65 20 69 73  20 65 6e 74 65 72 65 64  |utine is entered|
00001330  20 66 6f 6c 6c 6f 77 65  64 20 62 79 20 74 68 65  | followed by the|
00001340  20 69 6e 70 75 74 20 20  70 61 67 65 20 20 72 6f  | input  page  ro|
00001350  75 74 69 6e 65 2e 20 0d  20 20 20 20 49 66 20 20  |utine. .    If  |
00001360  3c 52 45 54 55 52 4e 3e  20 20 69 73 20 20 70 72  |<RETURN>  is  pr|
00001370  65 73 73 65 64 20 20 74  68 65 6e 20 20 74 68 65  |essed  then  the|
00001380  20 20 6c 61 73 74 20 70  61 67 65 20 79 6f 75 20  |  last page you |
00001390  72 65 71 75 65 73 74 65  64 20 69 73 20 72 65 71  |requested is req|
000013a0  75 65 73 74 65 64 20 0d  20 20 20 20 61 67 61 69  |uested .    agai|
000013b0  6e 2e 20 49 66 20 27 52  27 20 69 73 20 70 72 65  |n. If 'R' is pre|
000013c0  73 73 65 64 20 74 68 65  20 27 52 45 56 45 41 4c  |ssed the 'REVEAL|
000013d0  27 20 72 6f 75 74 69 6e  65 20 69 73 20 63 61 6c  |' routine is cal|
000013e0  6c 65 64 20 61 6e 64 20  20 74 68 69 73 20 20 74  |led and  this  t|
000013f0  6f 67 67 6c 65 73 20 0d  20 20 20 20 62 65 74 77  |oggles .    betw|
00001400  65 65 6e 20 20 72 65 76  65 61 6c 69 6e 67 20 61  |een  revealing a|
00001410  6e 64 20 63 6f 6e 63 65  61 6c 69 6e 67 2e 20 49  |nd concealing. I|
00001420  66 20 27 2a 27 20 69 73  20 70 72 65 73 73 65 64  |f '*' is pressed|
00001430  20 74 68 65 6e 20 74 68  65 20 73 74 61 72 20 63  | then the star c|
00001440  6f 6d 6d 61 6e 64 20 0d  20 20 20 20 72 6f 75 74  |ommand .    rout|
00001450  69 6e 65 20 69 73 20 65  6e 74 65 72 65 64 2e 20  |ine is entered. |
00001460  54 68 69 73 20 61 6c 6c  6f 77 73 20 74 68 65 20  |This allows the |
00001470  43 4c 49 45 4e 54 20 74  6f 20 20 2a 53 41 56 45  |CLIENT to  *SAVE|
00001480  20 20 70 61 67 65 73 20  20 65 74 63 2e 20 20 49  |  pages  etc.  I|
00001490  66 20 20 61 6e 79 20 0d  20 20 20 20 6f 74 68 65  |f  any .    othe|
000014a0  72 20 6b 65 79 20 69 73  20 70 72 65 73 73 65 64  |r key is pressed|
000014b0  20 74 68 65 20 70 61 67  65 20 69 6e 70 75 74 20  | the page input |
000014c0  72 6f 75 74 69 6e 65 20  69 73 20 65 6e 74 65 72  |routine is enter|
000014d0  65 64 2e 20 0d 20 0d 31  33 2e 20 54 68 65 20 20  |ed. . .13. The  |
000014e0  66 69 72 73 74 20 20 61  63 74 69 6f 6e 20 74 61  |first  action ta|
000014f0  6b 65 6e 20 62 79 20 62  6f 74 68 20 74 68 65 20  |ken by both the |
00001500  63 68 61 6e 6e 65 6c 20  69 6e 70 75 74 20 61 6e  |channel input an|
00001510  64 20 70 61 67 65 20 69  6e 70 75 74 20 72 6f 75  |d page input rou|
00001520  74 69 6e 65 73 20 0d 20  20 20 20 69 73 20 74 6f  |tines .    is to|
00001530  20 73 65 6e 64 20 61 20  27 63 61 6e 63 65 6c 20  | send a 'cancel |
00001540  70 61 67 65 20 72 65 71  75 65 73 74 27 20 74 6f  |page request' to|
00001550  20 20 74 68 65 20 20 53  45 52 56 45 52 20 20 61  |  the  SERVER  a|
00001560  6e 64 20 20 74 68 65 6e  20 20 64 65 6c 65 74 65  |nd  then  delete|
00001570  20 20 74 68 65 20 0d 20  20 20 20 63 75 72 72 65  |  the .    curre|
00001580  6e 74 20 20 70 61 67 65  20 20 72 65 63 65 69 76  |nt  page  receiv|
00001590  65 20 62 6c 6f 63 6b 2e  20 54 68 69 73 20 6d 65  |e block. This me|
000015a0  61 6e 73 20 74 68 65 20  53 45 52 56 45 52 20 77  |ans the SERVER w|
000015b0  69 6c 6c 20 6e 6f 20 6c  6f 6e 67 65 72 20 68 61  |ill no longer ha|
000015c0  76 65 20 74 6f 20 0d 20  20 20 20 62 6f 74 68 65  |ve to .    bothe|
000015d0  72 20 74 72 79 69 6e 67  20 74 6f 20 66 69 6e 64  |r trying to find|
000015e0  20 79 6f 75 72 20 6c 61  73 74 20 72 65 71 75 65  | your last reque|
000015f0  73 74 65 64 20 70 61 67  65 2e 20 54 68 65 20 70  |sted page. The p|
00001600  72 6f 6d 70 74 20 66 6f  72 20 20 61 20 20 63 68  |rompt for  a  ch|
00001610  61 6e 6e 65 6c 20 0d 20  20 20 20 69 6e 70 75 74  |annel .    input|
00001620  20 69 73 20 27 43 27 20  61 6e 64 20 66 6f 72 20  | is 'C' and for |
00001630  61 20 70 61 67 65 20 69  6e 70 75 74 20 69 73 20  |a page input is |
00001640  27 50 27 2e 20 42 6f 74  68 20 72 6f 75 74 69 6e  |'P'. Both routin|
00001650  65 73 20 6d 61 6b 65 20  75 73 65 20 6f 66 20 4f  |es make use of O|
00001660  53 57 4f 52 44 20 0d 20  20 20 20 30 20 74 6f 20  |SWORD .    0 to |
00001670  72 65 61 64 20 61 20 6c  69 6e 65 20 6f 66 20 69  |read a line of i|
00001680  6e 70 75 74 20 61 6e 64  20 73 6f 20 20 62 6f 74  |nput and so  bot|
00001690  68 20 20 6e 65 65 64 20  20 74 6f 20 20 62 65 20  |h  need  to  be |
000016a0  20 65 78 69 74 65 64 20  20 62 79 20 20 70 72 65  | exited  by  pre|
000016b0  73 73 69 6e 67 20 0d 20  20 20 20 3c 52 45 54 55  |ssing .    <RETU|
000016c0  52 4e 3e 2e 20 20 41 20  6e 65 77 20 72 65 63 65  |RN>.  A new rece|
000016d0  69 76 65 20 70 61 67 65  20 62 6c 6f 63 6b 20 69  |ive page block i|
000016e0  73 20 73 65 74 20 75 70  20 61 6e 64 20 74 68 65  |s set up and the|
000016f0  6e 20 74 68 65 20 6e 65  77 20 70 61 67 65 20 6e  |n the new page n|
00001700  75 6d 62 65 72 20 0d 20  20 20 20 69 73 20 74 72  |umber .    is tr|
00001710  61 6e 73 6d 69 74 74 65  64 20 74 6f 20 74 68 65  |ansmitted to the|
00001720  20 53 45 52 56 45 52 2e  20 0d 20 0d 31 34 2e 20  | SERVER. . .14. |
00001730  54 68 65 20 65 73 63 61  70 65 20 66 6c 61 67 20  |The escape flag |
00001740  69 73 20 63 6f 6e 74 69  6e 75 61 6c 6c 79 20 70  |is continually p|
00001750  6f 6c 6c 65 64 20 73 6f  20 74 68 61 74 20 74 68  |olled so that th|
00001760  65 20 43 4c 49 45 4e 54  20 63 61 6e 20 65 78 69  |e CLIENT can exi|
00001770  74 20 20 61 74 20 20 61  6e 79 20 0d 20 20 20 20  |t  at  any .    |
00001780  74 69 6d 65 20 20 62 79  20 20 70 72 65 73 73 69  |time  by  pressi|
00001790  6e 67 20 20 3c 45 53 43  41 50 45 3e 2e 20 20 54  |ng  <ESCAPE>.  T|
000017a0  68 69 73 20 20 77 69 6c  6c 20 73 65 6e 64 20 61  |his  will send a|
000017b0  20 6c 6f 67 6f 66 66 20  69 6e 73 74 72 75 63 74  | logoff instruct|
000017c0  69 6f 6e 20 74 6f 20 74  68 65 20 0d 20 20 20 20  |ion to the .    |
000017d0  53 45 52 56 45 52 20 77  68 69 63 68 20 73 74 6f  |SERVER which sto|
000017e0  70 73 20 69 74 20 6c 6f  6f 6b 69 6e 67 20 66 6f  |ps it looking fo|
000017f0  72 20 61 6e 79 20 6d 6f  72 65 20 20 70 61 67 65  |r any more  page|
00001800  73 20 20 66 6f 72 20 20  79 6f 75 2e 20 20 41 6c  |s  for  you.  Al|
00001810  6c 20 20 72 65 63 65 69  76 65 20 0d 20 20 20 20  |l  receive .    |
00001820  62 6c 6f 63 6b 73 20 61  72 65 20 64 65 6c 65 74  |blocks are delet|
00001830  65 64 2e 20 0d 20 0d 0d  20 20 20 20 20 20 20 20  |ed. . ..        |
00001840  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001850  20 20 20 20 20 20 20 20  20 20 53 75 62 2d 70 61  |          Sub-pa|
00001860  67 65 73 20 0d 20 0d 20  0d 4f 6e 65 20 20 6f 66  |ges . . .One  of|
00001870  20 20 74 68 65 20 66 65  61 74 75 72 65 73 20 6f  |  the features o|
00001880  66 20 74 68 65 20 6e 6f  72 6d 61 6c 20 75 73 65  |f the normal use|
00001890  20 6f 66 20 74 65 6c 65  74 65 78 74 20 69 73 20  | of teletext is |
000018a0  74 68 61 74 20 70 61 67  65 73 20 77 69 6c 6c 20  |that pages will |
000018b0  72 6f 6c 6c 20 73 6f 20  0d 74 68 61 74 20 74 68  |roll so .that th|
000018c0  65 79 20 61 72 65 20 63  6f 6e 73 74 61 6e 74 6c  |ey are constantl|
000018d0  79 20 75 70 64 61 74 65  64 20 65 67 2e 20 66 6f  |y updated eg. fo|
000018e0  72 20 63 72 69 63 6b 65  74 20 73 63 6f 72 65 73  |r cricket scores|
000018f0  20 20 6f 72 20 20 70 61  67 65 73 20 20 77 69 74  |  or  pages  wit|
00001900  68 20 20 6d 6f 72 65 20  0d 74 68 61 6e 20 6f 6e  |h  more .than on|
00001910  65 20 73 63 72 65 65 6e  20 6f 66 20 69 6e 66 6f  |e screen of info|
00001920  72 6d 61 74 69 6f 6e 2e  20 41 6e 20 61 70 70 72  |rmation. An appr|
00001930  6f 78 69 6d 61 74 69 6f  6e 20 74 6f 20 74 68 69  |oximation to thi|
00001940  73 20 66 61 63 69 6c 69  74 79 20 69 73 20 61 76  |s facility is av|
00001950  61 69 6c 61 62 6c 65 20  0d 66 72 6f 6d 20 74 68  |ailable .from th|
00001960  65 20 53 45 52 56 45 52  2e 20 50 72 65 73 73 69  |e SERVER. Pressi|
00001970  6e 67 20 27 53 27 20 77  69 6c 6c 20 65 6e 61 62  |ng 'S' will enab|
00001980  6c 65 20 74 68 65 20 61  75 74 6f 6d 61 74 69 63  |le the automatic|
00001990  20 72 6f 6c 6c 69 6e 67  20 6f 66 20 20 73 75 62  | rolling of  sub|
000019a0  2d 70 61 67 65 73 2e 20  0d 54 68 69 73 20 20 69  |-pages. .This  i|
000019b0  73 20 20 64 6f 6e 65 20  20 62 79 20 20 61 20 63  |s  done  by  a c|
000019c0  61 6c 6c 20 74 6f 20 74  68 65 20 53 45 52 56 45  |all to the SERVE|
000019d0  52 20 77 68 69 63 68 20  73 69 67 6e 61 6c 73 20  |R which signals |
000019e0  74 68 61 74 20 74 68 65  20 72 65 71 75 65 73 74  |that the request|
000019f0  65 64 20 70 61 67 65 20  0d 6d 75 73 74 20 6e 6f  |ed page .must no|
00001a00  74 20 62 65 20 73 65 6e  74 20 75 6e 74 69 6c 20  |t be sent until |
00001a10  61 74 20 6c 65 61 73 74  20 30 2e 35 20 6f 66 20  |at least 0.5 of |
00001a20  74 68 65 20 63 79 63 6c  65 20 74 69 6d 65 20 68  |the cycle time h|
00001a30  61 73 20 20 65 6c 61 70  73 65 64 2e 20 20 41 75  |as  elapsed.  Au|
00001a40  74 6f 6d 61 74 69 63 20  0d 72 6f 6c 6c 69 6e 67  |tomatic .rolling|
00001a50  20 20 6f 66 20 20 73 75  62 2d 70 61 67 65 73 20  |  of  sub-pages |
00001a60  20 63 61 6e 20 20 62 65  20 20 64 69 73 61 62 6c  | can  be  disabl|
00001a70  65 64 20 20 62 79 20 20  70 72 65 73 73 69 6e 67  |ed  by  pressing|
00001a80  20 27 53 27 20 61 67 61  69 6e 2e 20 45 6e 61 62  | 'S' again. Enab|
00001a90  6c 69 6e 67 20 69 73 20  0d 73 69 67 6e 61 6c 6c  |ling is .signall|
00001aa0  65 64 20 62 79 20 61 20  68 69 67 68 20 62 65 65  |ed by a high bee|
00001ab0  70 20 61 6e 64 20 64 69  73 61 62 6c 69 6e 67 20  |p and disabling |
00001ac0  62 79 20 61 20 6c 6f 77  20 62 65 65 70 2e 20 54  |by a low beep. T|
00001ad0  68 65 20 72 6f 6c 6c 69  6e 67 20 69 73 20 20 64  |he rolling is  d|
00001ae0  69 73 61 62 6c 65 64 20  0d 77 68 65 6e 65 76 65  |isabled .wheneve|
00001af0  72 20 61 20 6e 65 77 20  70 61 67 65 20 69 73 20  |r a new page is |
00001b00  72 65 71 75 65 73 74 65  64 2e 20 0d 20 0d 54 68  |requested. . .Th|
00001b10  69 73 20 20 69 6d 70 6c  65 6d 65 6e 74 61 74 69  |is  implementati|
00001b20  6f 6e 20 20 6f 66 20 73  75 62 2d 70 61 67 65 73  |on  of sub-pages|
00001b30  20 69 73 20 61 20 63 6f  6d 70 72 6f 6d 69 73 65  | is a compromise|
00001b40  20 69 6e 20 74 68 61 74  20 61 73 20 6d 6f 72 65  | in that as more|
00001b50  20 63 6c 69 65 6e 74 73  20 75 73 65 20 0d 74 68  | clients use .th|
00001b60  69 73 20 66 65 61 74 75  72 65 20 74 68 65 20 6d  |is feature the m|
00001b70  6f 72 65 20 66 75 6c 6c  20 77 69 6c 6c 20 62 65  |ore full will be|
00001b80  20 74 68 65 20 20 71 75  65 75 65 73 20 20 61 6e  | the  queues  an|
00001b90  64 20 20 69 74 20 20 69  73 20 20 66 6f 72 20 20  |d  it  is  for  |
00001ba0  74 68 69 73 20 20 72 65  61 73 6f 6e 20 0d 61 75  |this  reason .au|
00001bb0  74 6f 6d 61 74 69 63 20  72 6f 6c 6c 69 6e 67 20  |tomatic rolling |
00001bc0  6d 75 73 74 20 62 65 20  64 65 6c 69 62 65 72 61  |must be delibera|
00001bd0  74 65 6c 79 20 73 65 6c  65 63 74 65 64 20 66 6f  |tely selected fo|
00001be0  72 20 65 76 65 72 79 20  6e 65 77 20 70 61 67 65  |r every new page|
00001bf0  2e 20 49 74 20 69 73 20  61 6c 73 6f 20 0d 6e 6f  |. It is also .no|
00001c00  74 20 70 6f 73 73 69 62  6c 65 20 74 6f 20 67 75  |t possible to gu|
00001c10  61 72 61 6e 74 65 65 20  74 68 61 74 20 79 6f 75  |arantee that you|
00001c20  20 77 69 6c 6c 20 67 65  74 20 74 68 65 20 69 6d  | will get the im|
00001c30  6d 65 64 69 61 74 65 6c  79 20 66 6f 6c 6c 6f 77  |mediately follow|
00001c40  69 6e 67 20 73 75 62 2d  70 61 67 65 20 0d 69 6e  |ing sub-page .in|
00001c50  20 74 68 65 20 73 65 71  75 65 6e 63 65 2e 20 0d  | the sequence. .|
00001c60  20 0d 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | .              |
00001c70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001c80  20 54 68 65 20 54 46 53  20 70 72 6f 67 72 61 6d  | The TFS program|
00001c90  20 0d 20 0d 54 68 69 73  20 70 72 6f 67 72 61 6d  | . .This program|
00001ca0  20 6d 61 6b 65 73 20 61  73 20 66 75 6c 6c 20 75  | makes as full u|
00001cb0  73 65 20 61 73 20 70 6f  73 73 69 62 6c 65 20 6f  |se as possible o|
00001cc0  66 20 74 68 65 20 41 54  46 53 20 72 6f 6d 27 73  |f the ATFS rom's|
00001cd0  20 61 62 69 6c 69 74 79  20 74 6f 20 73 65 61 72  | ability to sear|
00001ce0  63 68 20 0d 66 6f 72 20  73 65 76 65 72 61 6c 20  |ch .for several |
00001cf0  70 61 67 65 73 20 61 74  20 6f 6e 63 65 2e 20 54  |pages at once. T|
00001d00  68 65 20 74 68 65 6f 72  65 74 69 63 61 6c 20 6d  |he theoretical m|
00001d10  61 78 69 6d 75 6d 20 69  73 20 32 30 20 61 74 20  |aximum is 20 at |
00001d20  6f 6e 63 65 20 62 75 74  20 74 68 65 20 20 73 69  |once but the  si|
00001d30  7a 65 20 0d 6f 66 20 20  74 68 65 20 20 54 46 53  |ze .of  the  TFS|
00001d40  20 20 70 72 6f 67 72 61  6d 20 20 6c 69 6d 69 74  |  program  limit|
00001d50  73 20 74 68 69 73 20 74  6f 20 61 62 6f 75 74 20  |s this to about |
00001d60  31 30 2e 20 54 68 65 20  6d 61 69 6e 20 70 72 6f  |10. The main pro|
00001d70  62 6c 65 6d 20 69 73 20  74 68 61 74 20 69 74 20  |blem is that it |
00001d80  69 73 20 0d 6f 6e 6c 79  20 70 6f 73 73 69 62 6c  |is .only possibl|
00001d90  65 20 74 6f 20 73 65 61  72 63 68 20 66 6f 72 20  |e to search for |
00001da0  70 61 67 65 73 20 6f 6e  20 6f 6e 65 20 63 68 61  |pages on one cha|
00001db0  6e 6e 65 6c 20 61 74 20  61 20 74 69 6d 65 20 61  |nnel at a time a|
00001dc0  6e 64 20 73 6f 6d 65 20  77 61 79 20 68 61 73 20  |nd some way has |
00001dd0  74 6f 20 0d 62 65 20 66  6f 75 6e 64 20 74 6f 20  |to .be found to |
00001de0  64 65 61 6c 20 77 69 74  68 20 74 68 69 73 2e 20  |deal with this. |
00001df0  0d 20 0d 54 68 65 20 20  61 70 70 72 6f 61 63 68  |. .The  approach|
00001e00  20 61 64 6f 70 74 65 64  20 69 73 20 74 6f 20 70  | adopted is to p|
00001e10  6c 61 63 65 20 61 20 70  61 67 65 20 72 65 71 75  |lace a page requ|
00001e20  65 73 74 20 69 6e 74 6f  20 6f 6e 65 20 6f 66 20  |est into one of |
00001e30  34 20 71 75 65 75 65 73  2c 20 6f 6e 65 20 66 6f  |4 queues, one fo|
00001e40  72 20 0d 65 61 63 68 20  63 68 61 6e 6e 65 6c 2e  |r .each channel.|
00001e50  20 49 66 20 74 68 65 20  6e 75 6d 62 65 72 20 6f  | If the number o|
00001e60  66 20 70 61 67 65 73 20  69 6e 20 61 20 71 75 65  |f pages in a que|
00001e70  75 65 20 65 78 63 65 65  64 73 20 74 68 65 20 6d  |ue exceeds the m|
00001e80  61 78 69 6d 75 6d 20 6e  75 6d 62 65 72 20 20 6f  |aximum number  o|
00001e90  66 20 0d 70 61 67 65 73  20 20 66 6f 72 20 20 77  |f .pages  for  w|
00001ea0  68 69 63 68 20 20 74 68  65 20 20 41 54 46 53 20  |hich  the  ATFS |
00001eb0  72 6f 6d 20 68 61 73 20  73 70 61 63 65 20 74 68  |rom has space th|
00001ec0  65 6e 20 61 20 27 43 68  61 6e 6e 65 6c 20 62 75  |en a 'Channel bu|
00001ed0  73 79 27 20 65 72 72 6f  72 20 77 69 6c 6c 20 62  |sy' error will b|
00001ee0  65 20 0d 72 65 74 75 72  6e 65 64 2e 20 54 68 69  |e .returned. Thi|
00001ef0  73 20 6d 61 78 69 6d 75  6d 20 6e 75 6d 62 65 72  |s maximum number|
00001f00  20 6f 66 20 70 61 67 65  73 20 69 73 20 74 68 65  | of pages is the|
00001f10  20 6e 75 6d 62 65 72 20  72 65 74 75 72 6e 65 64  | number returned|
00001f20  20 62 79 20 74 68 65 20  6d 61 78 20 75 73 65 72  | by the max user|
00001f30  73 20 0d 70 65 72 20 20  63 68 61 6e 6e 65 6c 20  |s .per  channel |
00001f40  63 61 6c 6c 2e 20 41 20  72 65 63 6f 72 64 20 69  |call. A record i|
00001f50  73 20 6b 65 70 74 20 6f  66 20 74 68 65 20 74 6f  |s kept of the to|
00001f60  74 61 6c 20 6e 75 6d 62  65 72 20 6f 66 20 70 61  |tal number of pa|
00001f70  67 65 73 20 72 65 71 75  65 73 74 65 64 20 61 6e  |ges requested an|
00001f80  64 20 0d 74 68 69 73 20  69 73 20 74 68 65 20 71  |d .this is the q|
00001f90  75 65 75 65 20 70 6f 73  69 74 69 6f 6e 20 72 65  |ueue position re|
00001fa0  74 75 72 6e 65 64 20 74  6f 20 74 68 65 20 43 4c  |turned to the CL|
00001fb0  49 45 4e 54 20 69 65 20  74 68 69 73 20 69 73 20  |IENT ie this is |
00001fc0  74 68 65 20 6f 76 65 72  61 6c 6c 20 71 75 65 75  |the overall queu|
00001fd0  65 20 0d 70 6f 73 69 74  69 6f 6e 20 61 6e 64 20  |e .position and |
00001fe0  6e 6f 74 20 74 68 65 20  70 6f 73 69 74 69 6f 6e  |not the position|
00001ff0  20 69 6e 20 74 68 65 20  71 75 65 75 65 20 66 6f  | in the queue fo|
00002000  72 20 61 20 70 61 72 74  69 63 75 6c 61 72 20 63  |r a particular c|
00002010  68 61 6e 6e 65 6c 2e 20  0d 57 68 65 6e 65 76 65  |hannel. .Wheneve|
00002020  72 20 61 20 70 61 67 65  20 72 65 71 75 65 73 74  |r a page request|
00002030  20 69 73 20 72 65 63 65  69 76 65 64 20 74 68 65  | is received the|
00002040  20 77 68 6f 6c 65 20 71  75 65 75 65 20 69 73 20  | whole queue is |
00002050  63 68 65 63 6b 65 64 20  74 6f 20 73 65 65 20 69  |checked to see i|
00002060  66 20 20 74 68 61 74 20  0d 43 4c 49 45 4e 54 20  |f  that .CLIENT |
00002070  20 28 69 64 65 6e 74 69  66 69 65 64 20 20 62 79  | (identified  by|
00002080  20 20 74 68 65 20 20 73  74 61 74 69 6f 6e 20 6e  |  the  station n|
00002090  75 6d 62 65 72 29 20 68  61 73 20 61 6e 79 20 6f  |umber) has any o|
000020a0  74 68 65 72 20 70 61 67  65 20 72 65 71 75 65 73  |ther page reques|
000020b0  74 65 64 2e 20 49 66 20  0d 74 68 69 73 20 69 73  |ted. If .this is|
000020c0  20 74 68 65 20 63 61 73  65 20 74 68 65 6e 20 74  | the case then t|
000020d0  68 61 74 20 70 61 67 65  20 69 73 20 64 72 6f 70  |hat page is drop|
000020e0  70 65 64 20 66 72 6f 6d  20 74 68 65 20 20 71 75  |ped from the  qu|
000020f0  65 75 65 2e 20 20 54 68  75 73 20 20 69 74 20 20  |eue.  Thus  it  |
00002100  69 73 20 20 6e 6f 74 20  0d 70 6f 73 73 69 62 6c  |is  not .possibl|
00002110  65 20 20 66 6f 72 20 20  61 20 20 43 4c 49 45 4e  |e  for  a  CLIEN|
00002120  54 20 20 74 6f 20 72 65  71 75 65 73 74 20 6d 6f  |T  to request mo|
00002130  72 65 20 74 68 61 6e 20  6f 6e 65 20 70 61 67 65  |re than one page|
00002140  20 61 74 20 6f 6e 63 65  2e 20 41 20 63 61 6e 63  | at once. A canc|
00002150  65 6c 20 70 61 67 65 20  0d 72 65 71 75 65 73 74  |el page .request|
00002160  20 6f 72 20 61 20 6c 6f  67 6f 66 66 20 77 69 6c  | or a logoff wil|
00002170  6c 20 72 65 73 75 6c 74  20 69 6e 20 61 6c 6c 20  |l result in all |
00002180  70 61 67 65 20 72 65 71  75 65 73 74 73 20 20 66  |page requests  f|
00002190  6f 72 20 20 74 68 61 74  20 20 43 4c 49 45 4e 54  |or  that  CLIENT|
000021a0  20 20 62 65 69 6e 67 20  0d 64 72 6f 70 70 65 64  |  being .dropped|
000021b0  20 66 72 6f 6d 20 74 68  65 20 71 75 65 75 65 2e  | from the queue.|
000021c0  20 0d 20 0d 54 68 65 20  20 77 61 79 20 20 74 68  | . .The  way  th|
000021d0  65 20 20 41 54 46 53 20  20 72 6f 6d 20 20 77 6f  |e  ATFS  rom  wo|
000021e0  72 6b 73 20 6d 65 61 6e  73 20 74 68 61 74 20 69  |rks means that i|
000021f0  66 20 79 6f 75 20 61 72  65 20 33 72 64 20 69 6e  |f you are 3rd in|
00002200  20 74 68 65 20 71 75 65  75 65 20 79 6f 75 20 6d  | the queue you m|
00002210  61 79 20 0d 73 74 69 6c  6c 20 72 65 63 65 69 76  |ay .still receiv|
00002220  65 20 79 6f 75 72 20 70  61 67 65 20 62 65 66 6f  |e your page befo|
00002230  72 65 20 74 68 65 20 43  4c 49 45 4e 54 20 77 68  |re the CLIENT wh|
00002240  6f 20 69 73 20 20 69 6e  20 20 31 73 74 20 20 70  |o is  in  1st  p|
00002250  6f 73 69 74 69 6f 6e 2e  20 20 54 68 69 73 20 20  |osition.  This  |
00002260  69 73 20 0d 70 72 6f 62  61 62 6c 79 20 62 65 73  |is .probably bes|
00002270  74 20 69 6c 6c 75 73 74  72 61 74 65 64 20 62 79  |t illustrated by|
00002280  20 65 78 61 6d 70 6c 65  2e 20 0d 20 0d 53 75 70  | example. . .Sup|
00002290  70 6f 73 65 20 74 68 65  20 66 6f 6c 6c 6f 77 69  |pose the followi|
000022a0  6e 67 20 72 65 71 75 65  73 74 73 20 61 72 65 20  |ng requests are |
000022b0  69 73 73 75 65 64 20 3a  20 0d 20 0d 53 74 61 74  |issued : . .Stat|
000022c0  69 6f 6e 20 31 32 20 70  61 67 65 20 31 37 30 20  |ion 12 page 170 |
000022d0  6f 6e 20 63 68 61 6e 6e  65 6c 20 31 20 0d 53 74  |on channel 1 .St|
000022e0  61 74 69 6f 6e 20 31 34  20 70 61 67 65 20 34 30  |ation 14 page 40|
000022f0  30 20 6f 6e 20 63 68 61  6e 6e 65 6c 20 34 20 0d  |0 on channel 4 .|
00002300  53 74 61 74 69 6f 6e 20  31 37 20 70 61 67 65 20  |Station 17 page |
00002310  31 32 33 20 6f 6e 20 63  68 61 6e 6e 65 6c 20 31  |123 on channel 1|
00002320  20 0d 20 0d 54 68 65 20  20 54 46 53 20 70 72 6f  | . .The  TFS pro|
00002330  67 72 61 6d 20 77 69 6c  6c 20 73 65 6c 65 63 74  |gram will select|
00002340  20 63 68 61 6e 6e 65 6c  20 31 20 61 73 20 74 68  | channel 1 as th|
00002350  69 73 20 69 73 20 74 68  65 20 68 69 67 68 65 73  |is is the highes|
00002360  74 20 70 72 69 6f 72 69  74 79 20 69 74 65 6d 20  |t priority item |
00002370  69 6e 20 0d 74 68 65 20  71 75 65 75 65 2e 20 57  |in .the queue. W|
00002380  68 65 6e 20 73 74 61 74  69 6f 6e 20 31 34 27 73  |hen station 14's|
00002390  20 72 65 71 75 65 73 74  20 61 72 72 69 76 65 73  | request arrives|
000023a0  20 69 74 20 77 69 6c 6c  20 62 65 20 73 74 6f 72  | it will be stor|
000023b0  65 64 20 20 69 6e 20 20  74 68 65 20 20 71 75 65  |ed  in  the  que|
000023c0  75 65 20 0d 66 6f 72 20  20 63 68 61 6e 6e 65 6c  |ue .for  channel|
000023d0  20 34 2e 20 48 6f 77 65  76 65 72 20 77 68 65 6e  | 4. However when|
000023e0  20 73 74 61 74 69 6f 6e  20 31 37 27 73 20 72 65  | station 17's re|
000023f0  71 75 65 73 74 20 61 72  72 69 76 65 73 20 6e 6f  |quest arrives no|
00002400  74 20 6f 6e 6c 79 20 69  73 20 69 74 20 61 64 64  |t only is it add|
00002410  65 64 20 0d 74 6f 20 74  68 65 20 71 75 65 75 65  |ed .to the queue|
00002420  20 66 6f 72 20 63 68 61  6e 6e 65 6c 20 31 20 62  | for channel 1 b|
00002430  75 74 20 61 20 72 65 63  6f 72 64 20 69 73 20 73  |ut a record is s|
00002440  65 74 20 75 70 20 74 6f  20 72 65 63 65 69 76 65  |et up to receive|
00002450  20 74 68 65 20 70 61 67  65 20 69 66 20 69 74 20  | the page if it |
00002460  69 73 20 0d 74 72 61 6e  73 6d 69 74 74 65 64 2e  |is .transmitted.|
00002470  20 53 75 70 70 6f 73 65  20 61 6c 6c 20 74 68 65  | Suppose all the|
00002480  73 65 20 74 68 72 65 65  20 72 65 71 75 65 73 74  |se three request|
00002490  73 20 61 72 72 69 76 65  20 61 6c 6d 6f 73 74 20  |s arrive almost |
000024a0  73 69 6d 75 6c 74 61 6e  65 6f 75 73 6c 79 20 61  |simultaneously a|
000024b0  6e 64 20 0d 61 74 20 74  68 65 20 6d 6f 6d 65 6e  |nd .at the momen|
000024c0  74 20 74 68 65 20 54 46  53 20 70 72 6f 67 72 61  |t the TFS progra|
000024d0  6d 20 73 65 6c 65 63 74  73 20 63 68 61 6e 6e 65  |m selects channe|
000024e0  6c 20 31 20 74 68 65 20  70 61 67 65 20 62 65 69  |l 1 the page bei|
000024f0  6e 67 20 74 72 61 6e 73  6d 69 74 74 65 64 20 20  |ng transmitted  |
00002500  69 73 20 0d 70 61 67 65  20 20 31 31 32 2e 20 20  |is .page  112.  |
00002510  54 68 69 73 20 6d 65 61  6e 73 20 74 68 61 74 20  |This means that |
00002520  73 74 61 74 69 6f 6e 20  31 37 27 73 20 70 61 67  |station 17's pag|
00002530  65 20 28 31 32 33 29 20  77 69 6c 6c 20 61 72 72  |e (123) will arr|
00002540  69 76 65 20 62 65 66 6f  72 65 20 73 74 61 74 69  |ive before stati|
00002550  6f 6e 20 0d 31 32 27 73  20 70 61 67 65 28 31 37  |on .12's page(17|
00002560  30 29 2e 20 54 68 75 73  20 73 74 61 74 69 6f 6e  |0). Thus station|
00002570  20 31 37 20 77 69 6c 6c  20 72 65 63 65 69 76 65  | 17 will receive|
00002580  20 69 74 27 73 20 70 61  67 65 20 66 69 72 73 74  | it's page first|
00002590  20 20 65 76 65 6e 20 20  74 68 6f 75 67 68 20 20  |  even  though  |
000025a0  69 74 20 0d 77 61 73 20  20 33 72 64 20 20 69 6e  |it .was  3rd  in|
000025b0  20 74 68 65 20 71 75 65  75 65 2e 20 54 68 65 20  | the queue. The |
000025c0  6e 65 78 74 20 70 61 67  65 20 74 6f 20 62 65 20  |next page to be |
000025d0  73 65 6e 74 20 77 69 6c  6c 20 62 65 20 31 37 30  |sent will be 170|
000025e0  20 74 6f 20 73 74 61 74  69 6f 6e 20 31 32 20 61  | to station 12 a|
000025f0  6e 64 20 0d 73 74 61 74  69 6f 6e 20 31 34 20 77  |nd .station 14 w|
00002600  69 6c 6c 20 72 65 63 65  69 76 65 20 69 74 73 20  |ill receive its |
00002610  70 61 67 65 20 6c 61 73  74 20 65 76 65 6e 20 74  |page last even t|
00002620  68 6f 75 67 68 20 69 74  20 77 61 73 20 20 32 6e  |hough it was  2n|
00002630  64 20 20 69 6e 20 20 74  68 65 20 20 71 75 65 75  |d  in  the  queu|
00002640  65 2e 20 0d 54 68 69 73  20 20 69 73 20 20 6e 6f  |e. .This  is  no|
00002650  74 20 64 69 73 61 73 74  65 72 20 61 73 20 69 6e  |t disaster as in|
00002660  20 66 61 63 74 20 73 74  61 74 69 6f 6e 20 31 32  | fact station 12|
00002670  20 68 61 73 20 68 61 64  20 6e 6f 20 6c 6f 6e 67  | has had no long|
00002680  65 72 20 74 6f 20 77 61  69 74 20 74 68 61 6e 20  |er to wait than |
00002690  69 74 20 0d 77 6f 75 6c  64 20 68 61 76 65 20 68  |it .would have h|
000026a0  61 64 20 61 6e 79 77 61  79 2e 20 57 68 61 74 20  |ad anyway. What |
000026b0  77 65 20 68 61 76 65 20  6d 61 6e 61 67 65 64 20  |we have managed |
000026c0  74 6f 20 64 6f 20 69 73  20 61 6c 73 6f 20 64 65  |to do is also de|
000026d0  61 6c 20 77 69 74 68 20  73 74 61 74 69 6f 6e 20  |al with station |
000026e0  31 37 20 0d 61 73 20 61  20 73 70 69 6e 2d 6f 66  |17 .as a spin-of|
000026f0  66 20 66 72 6f 6d 20 73  74 61 74 69 6f 6e 20 31  |f from station 1|
00002700  27 73 20 72 65 71 75 65  73 74 2e 20 0d 20 0d 49  |'s request. . .I|
00002710  66 20 20 6d 6f 72 65 20  74 68 61 6e 20 6f 6e 65  |f  more than one|
00002720  20 73 74 61 74 69 6f 6e  20 72 65 71 75 65 73 74  | station request|
00002730  73 20 74 68 65 20 73 61  6d 65 20 70 61 67 65 20  |s the same page |
00002740  74 68 65 6e 20 74 68 69  73 20 69 73 20 73 70 6f  |then this is spo|
00002750  74 74 65 64 20 61 6e 64  20 6f 6e 6c 79 20 0d 6f  |tted and only .o|
00002760  6e 65 20 6f 66 20 74 68  65 20 41 54 46 53 20 72  |ne of the ATFS r|
00002770  65 63 6f 72 64 73 20 69  73 20 75 73 65 64 2e 20  |ecords is used. |
00002780  54 68 69 73 20 6d 65 61  6e 73 20 74 68 61 74 20  |This means that |
00002790  69 74 20 69 73 20 70 6f  73 73 69 62 6c 65 20 74  |it is possible t|
000027a0  6f 20 20 68 61 76 65 20  20 6d 6f 72 65 20 0d 74  |o  have  more .t|
000027b0  68 61 6e 20 20 74 68 65  20 20 6d 61 78 69 6d 75  |han  the  maximu|
000027c0  6d 20 20 6e 75 6d 62 65  72 20 20 6f 66 20 75 73  |m  number  of us|
000027d0  65 72 73 20 70 65 72 20  63 68 61 6e 6e 65 6c 20  |ers per channel |
000027e0  71 75 65 75 65 64 20 69  66 20 74 68 61 74 20 63  |queued if that c|
000027f0  68 61 6e 6e 65 6c 20 69  73 20 74 68 65 20 0d 63  |hannel is the .c|
00002800  75 72 72 65 6e 74 6c 79  20 73 65 6c 65 63 74 65  |urrently selecte|
00002810  64 20 6f 6e 65 2e 20 0d  20 0d 57 68 65 6e 20 61  |d one. . .When a|
00002820  6e 20 41 54 46 53 20 72  65 63 6f 72 64 20 68 61  |n ATFS record ha|
00002830  73 20 62 65 65 6e 20 75  73 65 64 20 74 68 65 20  |s been used the |
00002840  70 61 67 65 20 69 74 20  77 61 73 20 6c 6f 6f 6b  |page it was look|
00002850  69 6e 67 20 20 66 6f 72  20 20 69 73 20 20 72 65  |ing  for  is  re|
00002860  6d 65 6d 62 65 72 65 64  20 0d 61 6e 64 20 20 6f  |membered .and  o|
00002870  6e 63 65 20 20 74 68 61  74 20 70 61 67 65 20 68  |nce  that page h|
00002880  61 73 20 62 65 65 6e 20  66 6f 75 6e 64 20 74 68  |as been found th|
00002890  65 20 72 65 63 6f 72 64  20 69 73 20 6e 6f 74 20  |e record is not |
000028a0  63 6c 65 61 72 65 64 2e  20 54 68 69 73 20 6d 65  |cleared. This me|
000028b0  61 6e 73 20 74 68 61 74  20 0d 70 72 6f 76 69 64  |ans that .provid|
000028c0  65 64 20 74 68 65 20 63  68 61 6e 6e 65 6c 20 69  |ed the channel i|
000028d0  73 20 6e 6f 74 20 63 68  61 6e 67 65 64 20 74 68  |s not changed th|
000028e0  69 73 20 70 61 67 65 20  77 69 6c 6c 20 63 6f 6e  |is page will con|
000028f0  74 69 6e 75 65 20 74 6f  20 62 65 20 75 70 64 61  |tinue to be upda|
00002900  74 65 64 20 20 61 6e 64  20 0d 77 69 6c 6c 20 62  |ted  and .will b|
00002910  65 20 70 65 72 6d 61 6e  65 6e 74 6c 79 20 61 76  |e permanently av|
00002920  61 69 6c 61 62 6c 65 2e  20 53 75 70 70 6f 73 65  |ailable. Suppose|
00002930  20 61 20 43 4c 49 45 4e  54 20 72 65 71 75 65 73  | a CLIENT reques|
00002940  74 73 20 70 61 67 65 20  31 37 31 3b 20 74 68 65  |ts page 171; the|
00002950  20 70 61 67 65 20 69 73  20 0d 72 65 63 65 69 76  | page is .receiv|
00002960  65 64 20 61 6e 64 20 74  68 65 6e 20 74 72 61 6e  |ed and then tran|
00002970  73 6d 69 74 74 65 64 2e  20 49 66 20 61 6e 6f 74  |smitted. If anot|
00002980  68 65 72 20 43 4c 49 45  4e 54 20 20 28 6f 72 20  |her CLIENT  (or |
00002990  20 69 6e 64 65 65 64 20  20 74 68 65 20 20 73 61  | indeed  the  sa|
000029a0  6d 65 20 20 6f 6e 65 29  20 0d 72 65 71 75 65 73  |me  one) .reques|
000029b0  74 73 20 20 74 68 65 20  20 73 61 6d 65 20 20 70  |ts  the  same  p|
000029c0  61 67 65 20 74 68 65 6e  20 69 74 20 69 73 20 69  |age then it is i|
000029d0  6e 73 74 61 6e 74 6c 79  20 61 76 61 69 6c 61 62  |nstantly availab|
000029e0  6c 65 2e 20 54 68 69 73  20 69 73 20 70 61 72 74  |le. This is part|
000029f0  69 63 75 6c 61 72 6c 79  20 0d 75 73 65 66 75 6c  |icularly .useful|
00002a00  20 69 66 20 79 6f 75 20  68 61 70 70 65 6e 20 74  | if you happen t|
00002a10  6f 20 62 65 20 74 68 65  20 6f 6e 6c 79 20 43 4c  |o be the only CL|
00002a20  49 45 4e 54 20 75 73 69  6e 67 20 74 68 65 20 73  |IENT using the s|
00002a30  79 73 74 65 6d 20 61 73  20 69 74 20 20 6d 65 61  |ystem as it  mea|
00002a40  6e 73 20 20 74 68 61 74  20 0d 74 68 65 20 20 6c  |ns  that .the  l|
00002a50  61 73 74 20 20 31 30 20  20 6f 72 20 20 73 6f 20  |ast  10  or  so |
00002a60  70 61 67 65 73 20 79 6f  75 20 68 61 76 65 20 72  |pages you have r|
00002a70  65 71 75 65 73 74 65 64  20 6f 6e 20 61 20 67 69  |equested on a gi|
00002a80  76 65 6e 20 63 68 61 6e  6e 65 6c 20 61 72 65 20  |ven channel are |
00002a90  6e 6f 74 20 6f 6e 6c 79  20 0d 62 75 66 66 65 72  |not only .buffer|
00002aa0  65 64 20 62 79 20 74 68  65 20 54 46 53 20 70 72  |ed by the TFS pr|
00002ab0  6f 67 72 61 6d 2c 20 62  75 74 20 61 6c 73 6f 20  |ogram, but also |
00002ac0  75 70 64 61 74 65 64 20  61 6e 64 20 69 6e 73 74  |updated and inst|
00002ad0  61 6e 74 6c 79 20 61 76  61 69 6c 61 62 6c 65 2e  |antly available.|
00002ae0  20 0d 20 0d 54 68 65 20  54 46 53 20 70 72 6f 67  | . .The TFS prog|
00002af0  72 61 6d 20 62 72 6f 61  64 63 61 73 74 73 20 77  |ram broadcasts w|
00002b00  68 61 74 65 76 65 72 20  70 61 67 65 20 6e 75 6d  |hatever page num|
00002b10  62 65 72 20 69 73 20 63  75 72 72 65 6e 74 6c 79  |ber is currently|
00002b20  20 61 74 20 74 68 65 20  74 6f 70 20 6f 66 20 74  | at the top of t|
00002b30  68 65 20 0d 73 63 72 65  65 6e 20 62 79 20 75 73  |he .screen by us|
00002b40  69 6e 67 20 74 68 65 20  74 69 6d 65 72 20 63 72  |ing the timer cr|
00002b50  6f 73 73 69 6e 67 20 7a  65 72 6f 20 65 76 65 6e  |ossing zero even|
00002b60  74 2e 20 54 68 69 73 20  6f 63 63 75 72 73 20 65  |t. This occurs e|
00002b70  76 65 72 79 20 68 61 6c  66 20 73 65 63 6f 6e 64  |very half second|
00002b80  2e 20 0d 20 0d 4f 76 65  72 61 6c 6c 20 20 74 68  |. . .Overall  th|
00002b90  65 20 20 72 65 73 70 6f  6e 73 65 20 20 74 69 6d  |e  response  tim|
00002ba0  65 20 20 6f 66 20 20 74  68 65 20 20 73 79 73 74  |e  of  the  syst|
00002bb0  65 6d 20 20 69 73 20 20  76 65 72 79 20 20 66 61  |em  is  very  fa|
00002bc0  73 74 20 61 6c 74 68 6f  75 67 68 20 69 74 20 77  |st although it w|
00002bd0  69 6c 6c 20 0d 6f 62 76  69 6f 75 73 6c 79 20 62  |ill .obviously b|
00002be0  65 20 73 6c 6f 77 65 64  20 64 6f 77 6e 20 69 66  |e slowed down if|
00002bf0  20 43 4c 49 45 4e 54 73  20 20 72 65 71 75 65 73  | CLIENTs  reques|
00002c00  74 20 20 6e 6f 6e 2d 65  78 69 73 74 65 6e 74 20  |t  non-existent |
00002c10  20 70 61 67 65 73 2e 20  20 54 68 65 20 20 63 79  | pages.  The  cy|
00002c20  63 6c 65 20 0d 74 69 6d  65 73 20 20 66 6f 72 20  |cle .times  for |
00002c30  20 74 68 65 20 20 64 69  66 66 65 72 65 6e 74 20  | the  different |
00002c40  63 68 61 6e 6e 65 6c 73  20 61 72 65 20 69 6d 70  |channels are imp|
00002c50  6f 72 74 61 6e 74 20 74  6f 20 74 68 65 20 65 66  |ortant to the ef|
00002c60  66 69 63 69 65 6e 63 79  20 6f 66 20 74 68 65 20  |ficiency of the |
00002c70  54 46 53 20 0d 70 72 6f  67 72 61 6d 20 61 6e 64  |TFS .program and|
00002c80  20 61 73 20 74 68 65 73  65 20 74 69 6d 65 73 20  | as these times |
00002c90  6d 61 79 20 62 65 20 73  75 62 6a 65 63 74 20 74  |may be subject t|
00002ca0  6f 20 63 68 61 6e 67 65  20 74 68 65 79 20 68 61  |o change they ha|
00002cb0  76 65 20 62 65 65 6e 20  69 6e 63 6c 75 64 65 64  |ve been included|
00002cc0  20 69 6e 20 0d 61 20 20  44 41 54 41 20 20 73 74  | in .a  DATA  st|
00002cd0  61 74 65 6d 65 6e 74 20  61 74 20 74 68 65 20 76  |atement at the v|
00002ce0  65 72 79 20 65 6e 64 20  6f 66 20 74 68 65 20 70  |ery end of the p|
00002cf0  72 6f 67 72 61 6d 2e 20  54 68 65 20 66 69 72 73  |rogram. The firs|
00002d00  74 20 44 41 54 41 20 73  74 61 74 65 6d 65 6e 74  |t DATA statement|
00002d10  20 69 73 20 0d 74 68 65  20 66 72 61 63 74 69 6f  | is .the fractio|
00002d20  6e 20 6f 66 20 74 68 65  20 63 79 63 6c 65 20 74  |n of the cycle t|
00002d30  69 6d 65 20 66 6f 72 20  77 68 69 63 68 20 74 68  |ime for which th|
00002d40  65 20 20 54 46 53 20 20  70 72 6f 67 72 61 6d 20  |e  TFS  program |
00002d50  20 77 69 6c 6c 20 20 77  61 69 74 20 20 62 65 66  | will  wait  bef|
00002d60  6f 72 65 20 0d 73 65 6e  64 69 6e 67 20 20 61 20  |ore .sending  a |
00002d70  73 75 62 2d 70 61 67 65  2e 20 54 68 69 73 20 69  |sub-page. This i|
00002d80  73 20 63 75 72 72 65 6e  74 6c 79 20 30 2e 35 2e  |s currently 0.5.|
00002d90  20 54 68 65 20 73 65 63  6f 6e 64 20 44 41 54 41  | The second DATA|
00002da0  20 73 74 61 74 65 6d 65  6e 74 20 63 6f 6e 73 69  | statement consi|
00002db0  73 74 73 20 0d 6f 66 20  74 68 65 20 63 79 63 6c  |sts .of the cycl|
00002dc0  65 20 74 69 6d 65 73 20  66 6f 72 20 74 68 65 20  |e times for the |
00002dd0  66 6f 75 72 20 63 68 61  6e 6e 65 6c 73 20 69 6e  |four channels in|
00002de0  20 68 75 6e 64 72 65 64  74 68 73 20 6f 66 20 61  | hundredths of a|
00002df0  20 73 65 63 6f 6e 64 2e  20 20 54 68 65 79 20 20  | second.  They  |
00002e00  61 72 65 20 0d 63 75 72  72 65 6e 74 6c 79 20 73  |are .currently s|
00002e10  65 74 20 74 6f 20 34 30  20 73 65 63 6f 6e 64 73  |et to 40 seconds|
00002e20  20 65 61 63 68 2e 20 0d  20 0d 20 0d 20 20 20 20  | each. . . .    |
00002e30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002e40  20 20 20 20 20 20 20 49  6e 73 74 61 6c 6c 69 6e  |       Installin|
00002e50  67 20 74 68 65 20 70 72  6f 67 72 61 6d 73 20 0d  |g the programs .|
00002e60  20 0d 20 0d 31 2e 20 20  50 6c 61 63 65 20 27 54  | . .1.  Place 'T|
00002e70  45 4c 45 54 45 58 54 27  20 70 72 6f 67 72 61 6d  |ELETEXT' program|
00002e80  20 69 6e 20 24 2e 4c 49  42 52 41 52 59 20 0d 20  | in $.LIBRARY . |
00002e90  0d 32 2e 20 20 50 75 74  20 20 27 54 46 53 27 20  |.2.  Put  'TFS' |
00002ea0  20 61 6e 64 20 27 63 6f  64 65 27 20 69 6e 20 61  | and 'code' in a|
00002eb0  20 64 69 72 65 63 74 6f  72 79 20 6f 66 20 74 68  | directory of th|
00002ec0  65 69 72 20 6f 77 6e 2e  20 54 68 69 73 20 6d 69  |eir own. This mi|
00002ed0  67 68 74 20 62 65 20 74  68 65 20 72 6f 6f 74 20  |ght be the root |
00002ee0  0d 20 20 20 20 64 69 72  65 63 74 6f 72 79 20 6f  |.    directory o|
00002ef0  66 20 61 20 75 73 65 72  20 54 46 53 2e 20 49 66  |f a user TFS. If|
00002f00  20 74 68 69 73 20 75 73  65 72 20 68 61 73 20 61  | this user has a|
00002f10  20 21 42 4f 4f 54 20 66  69 6c 65 20 20 77 68 69  | !BOOT file  whi|
00002f20  63 68 20 20 43 48 41 49  4e 73 20 20 74 68 65 20  |ch  CHAINs  the |
00002f30  0d 20 20 20 20 27 54 46  53 27 20 20 70 72 6f 67  |.    'TFS'  prog|
00002f40  72 61 6d 20 20 74 68 65  6e 20 20 74 68 65 20 77  |ram  then  the w|
00002f50  68 6f 6c 65 20 73 79 73  74 65 6d 20 63 61 6e 20  |hole system can |
00002f60  62 65 20 69 6e 69 74 69  61 6c 69 73 65 64 20 62  |be initialised b|
00002f70  79 20 73 69 6d 70 6c 79  20 74 79 70 69 6e 67 20  |y simply typing |
00002f80  0d 20 20 20 20 2a 49 20  41 4d 20 54 46 53 2e 20  |.    *I AM TFS. |
00002f90  54 68 65 20 6d 61 63 68  69 6e 65 20 72 75 6e 6e  |The machine runn|
00002fa0  69 6e 67 20 74 68 65 20  54 46 53 20 70 72 6f 67  |ing the TFS prog|
00002fb0  72 61 6d 20 6d 75 73 74  20 6e 6f 74 20 75 73 65  |ram must not use|
00002fc0  20 73 68 61 64 6f 77 20  73 63 72 65 65 6e 73 20  | shadow screens |
00002fd0  0d 20 20 20 20 61 73 20  20 74 68 65 20 68 65 61  |.    as  the hea|
00002fe0  64 65 72 20 69 73 20 50  4f 4b 45 44 20 69 6e 20  |der is POKED in |
00002ff0  74 6f 20 6d 65 6d 6f 72  79 20 61 74 20 26 37 43  |to memory at &7C|
00003000  30 30 20 62 79 20 74 68  65 20 41 54 46 53 20 52  |00 by the ATFS R|
00003010  6f 6d 2e 20 54 68 65 20  70 72 6f 67 72 61 6d 20  |om. The program |
00003020  0d 20 20 20 20 6d 61 79  20 72 75 6e 20 69 6e 20  |.    may run in |
00003030  61 20 73 65 63 6f 6e 64  20 20 70 72 6f 63 65 73  |a second  proces|
00003040  73 6f 72 2c 20 20 69 6e  20 20 77 68 69 63 68 20  |sor,  in  which |
00003050  20 63 61 73 65 20 20 74  68 65 20 20 77 68 6f 6c  | case  the  whol|
00003060  65 20 20 6f 66 20 20 74  68 65 20 20 49 2f 4f 20  |e  of  the  I/O |
00003070  0d 20 20 20 20 70 72 6f  63 65 73 73 6f 72 20 20  |.    processor  |
00003080  6d 65 6d 6f 72 79 20 20  62 65 63 6f 6d 65 73 20  |memory  becomes |
00003090  61 76 61 69 6c 61 62 6c  65 20 66 6f 72 20 62 75  |available for bu|
000030a0  66 66 65 72 69 6e 67 20  70 61 67 65 73 20 61 6e  |ffering pages an|
000030b0  64 20 74 68 65 72 65 20  77 69 6c 6c 20 62 65 20  |d there will be |
000030c0  0d 20 20 20 20 61 6e 20  61 73 73 6f 63 69 61 74  |.    an associat|
000030d0  65 64 20 69 6e 63 72 65  61 73 65 20 69 6e 20 70  |ed increase in p|
000030e0  65 72 66 6f 72 6d 61 6e  63 65 2e 20 54 68 65 72  |erformance. Ther|
000030f0  65 20 20 69 73 20 20 6e  6f 20 20 61 64 76 61 6e  |e  is  no  advan|
00003100  74 61 67 65 20 20 69 6e  20 20 75 73 69 6e 67 20  |tage  in  using |
00003110  0d 20 20 20 20 48 49 42  41 53 49 43 20 61 73 20  |.    HIBASIC as |
00003120  74 68 65 20 70 61 67 65  73 20 61 72 65 20 62 75  |the pages are bu|
00003130  66 66 65 72 65 64 20 69  6e 20 74 68 65 20 49 2f  |ffered in the I/|
00003140  4f 20 70 72 6f 63 65 73  73 6f 72 2e 20 0d 20 0d  |O processor. . .|
00003150  0d 20 20 20 20 20 20 20  20 20 20 20 20 43 6f 6d  |.            Com|
00003160  70 61 74 69 62 69 6c 69  74 79 20 77 69 74 68 20  |patibility with |
00003170  74 68 65 20 47 49 53 20  61 64 61 70 74 65 72 20  |the GIS adapter |
00003180  75 6e 64 65 72 20 41 54  53 2b 20 56 65 72 73 69  |under ATS+ Versi|
00003190  6f 6e 20 31 2e 30 30 0d  20 0d 54 68 65 20 73 6f  |on 1.00. .The so|
000031a0  66 74 77 61 72 65 20 69  73 20 63 6f 6d 70 61 74  |ftware is compat|
000031b0  69 62 6c 65 20 77 69 74  68 20 74 68 65 20 6e 65  |ible with the ne|
000031c0  77 20 47 49 53 20 74 65  6c 65 74 65 78 74 20 61  |w GIS teletext a|
000031d0  64 61 70 74 65 72 20 61  6c 74 68 6f 75 67 68 20  |dapter although |
000031e0  61 73 20 20 74 68 69 73  20 0d 63 6f 6e 6e 65 63  |as  this .connec|
000031f0  74 73 20 20 74 6f 20 20  74 68 65 20 20 75 73 65  |ts  to  the  use|
00003200  72 20 70 6f 72 74 20 72  61 74 68 65 72 20 74 68  |r port rather th|
00003210  61 6e 20 74 68 65 20 31  4d 48 7a 20 42 75 73 20  |an the 1MHz Bus |
00003220  74 68 65 20 73 70 65 65  64 20 6f 66 20 72 65 73  |the speed of res|
00003230  70 6f 6e 73 65 20 69 73  20 0d 73 6c 69 67 68 74  |ponse is .slight|
00003240  6c 79 20 73 6c 6f 77 65  72 2e 20 54 68 65 72 65  |ly slower. There|
00003250  20 61 70 70 65 61 72 73  20 74 6f 20 62 65 20 61  | appears to be a|
00003260  20 70 72 6f 62 6c 65 6d  20 77 69 74 68 20 74 68  | problem with th|
00003270  65 20 72 6f 75 74 69 6e  65 20 20 74 6f 20 20 63  |e routine  to  c|
00003280  61 6c 63 75 6c 61 74 65  20 0d 74 68 65 20 20 63  |alculate .the  c|
00003290  68 65 63 6b 73 75 6d 20  6f 66 20 61 20 70 61 67  |hecksum of a pag|
000032a0  65 20 69 6e 20 74 68 61  74 20 74 68 65 20 47 49  |e in that the GI|
000032b0  53 20 52 6f 6d 20 67 65  74 73 20 69 74 20 77 72  |S Rom gets it wr|
000032c0  6f 6e 67 20 69 66 20 61  20 70 61 67 65 20 68 65  |ong if a page he|
000032d0  61 64 65 72 20 77 61 73  20 0d 62 72 6f 61 64 63  |ader was .broadc|
000032e0  61 73 74 20 77 68 69 6c  65 20 70 65 72 66 6f 72  |ast while perfor|
000032f0  6d 69 6e 67 20 74 68 65  20 63 68 65 63 6b 2e 20  |ming the check. |
00003300  54 68 65 72 65 20 64 6f  65 73 20 73 65 65 6d 20  |There does seem |
00003310  74 6f 20 62 65 20 61 20  70 72 6f 62 6c 65 6d 20  |to be a problem |
00003320  77 69 74 68 20 74 68 65  20 0d 4d 41 53 54 45 52  |with the .MASTER|
00003330  20 31 32 38 20 61 6e 64  20 74 68 65 20 54 55 42  | 128 and the TUB|
00003340  45 20 69 6e 20 74 68 61  74 20 74 68 65 20 73 6f  |E in that the so|
00003350  66 74 77 61 72 65 20 77  69 6c 6c 20 6e 6f 74 20  |ftware will not |
00003360  77 6f 72 6b 20 77 69 74  68 20 65 69 74 68 65 72  |work with either|
00003370  20 61 64 61 70 74 65 72  20 0d 69 6e 20 74 68 69  | adapter .in thi|
00003380  73 20 63 6f 6e 66 69 67  75 72 61 74 69 6f 6e 2e  |s configuration.|
00003390  20 54 68 69 73 20 6c 6f  6f 6b 73 20 6c 69 6b 65  | This looks like|
000033a0  20 69 74 20 6d 61 79 20  62 65 20 61 20 70 72 6f  | it may be a pro|
000033b0  62 6c 65 6d 20 77 69 74  68 20 74 68 65 20 41 4e  |blem with the AN|
000033c0  46 53 2e 20 0d 20 0d 20  20 20 20 20 20 20 20 20  |FS. . .         |
000033d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000033e0  20 57 72 69 74 69 6e 67  20 79 6f 75 72 20 6f 77  | Writing your ow|
000033f0  6e 20 73 6f 66 74 77 61  72 65 20 0d 20 0d 42 65  |n software . .Be|
00003400  6c 6f 77 20 69 73 20 61  6e 20 65 78 61 6d 70 6c  |low is an exampl|
00003410  65 20 6f 66 20 61 20 42  41 53 49 43 20 70 72 6f  |e of a BASIC pro|
00003420  67 72 61 6d 20 77 68 69  63 68 20 69 6c 6c 75 73  |gram which illus|
00003430  74 72 61 74 65 73 20 68  6f 77 20 74 6f 20 77 72  |trates how to wr|
00003440  69 74 65 20 79 6f 75 72  20 6f 77 6e 20 0d 73 6f  |ite your own .so|
00003450  66 74 77 61 72 65 20 20  75 73 69 6e 67 20 20 74  |ftware  using  t|
00003460  68 65 20 20 53 45 52 56  45 52 20 70 72 6f 74 6f  |he  SERVER proto|
00003470  63 6f 6c 73 2e 20 55 73  69 6e 67 20 74 68 69 73  |cols. Using this|
00003480  20 70 72 69 6e 63 69 70  6c 65 20 69 74 20 69 73  | principle it is|
00003490  20 70 6f 73 73 69 62 6c  65 20 74 6f 20 0d 77 72  | possible to .wr|
000034a0  69 74 65 20 70 72 6f 67  72 61 6d 73 20 66 6f 72  |ite programs for|
000034b0  20 61 75 74 6f 6d 61 74  69 63 61 6c 6c 79 20 72  | automatically r|
000034c0  65 63 65 69 76 69 6e 67  20 61 6e 64 20 73 61 76  |eceiving and sav|
000034d0  69 6e 67 20 70 61 67 65  73 2e 20 0d 20 0d 52 65  |ing pages. . .Re|
000034e0  61 64 20 74 68 65 20 74  69 6d 65 20 66 72 6f 6d  |ad the time from|
000034f0  20 61 20 54 45 4c 45 54  45 58 54 20 73 65 72 76  | a TELETEXT serv|
00003500  65 72 20 0d 20 0d 20 20  31 30 20 6f 73 77 6f 72  |er . .  10 oswor|
00003510  64 3d 26 46 46 46 31 3a  6f 73 62 79 74 65 3d 26  |d=&FFF1:osbyte=&|
00003520  46 46 46 34 20 0d 20 20  32 30 20 44 49 4d 20 62  |FFF4 .  20 DIM b|
00003530  6c 6b 25 20 26 31 30 30  2c 62 75 66 66 20 26 31  |lk% &100,buff &1|
00003540  30 30 20 0d 20 20 33 30  20 52 45 50 45 41 54 20  |00 .  30 REPEAT |
00003550  0d 20 20 34 30 20 20 20  20 20 20 20 20 20 20 20  |.  40           |
00003560  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003570  20 20 20 20 20 20 20 3a  52 45 4d 20 53 65 74 20  |       :REM Set |
00003580  75 70 20 72 65 63 65 69  76 65 20 62 6c 6b 20 66  |up receive blk f|
00003590  6f 72 20 53 45 52 56 45  52 20 72 65 70 6c 79 20  |or SERVER reply |
000035a0  0d 20 20 35 30 20 72 78  5f 6e 6f 3d 46 4e 73 65  |.  50 rx_no=FNse|
000035b0  74 5f 75 70 5f 72 78 28  26 42 31 2c 30 2c 62 75  |t_up_rx(&B1,0,bu|
000035c0  66 66 2c 26 32 30 29 3a  52 45 4d 20 4c 69 73 74  |ff,&20):REM List|
000035d0  65 6e 20 66 6f 72 20 61  6c 6c 20 73 74 61 74 69  |en for all stati|
000035e0  6f 6e 73 20 61 73 20 77  65 20 64 6f 6e 27 74 20  |ons as we don't |
000035f0  0d 20 20 36 30 20 20 20  20 20 20 20 20 20 20 20  |.  60           |
00003600  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003610  20 20 20 20 20 20 20 3a  52 45 4d 20 20 20 6b 6e  |       :REM   kn|
00003620  6f 77 20 74 68 65 20 73  65 72 76 65 72 20 73 74  |ow the server st|
00003630  61 74 69 6f 6e 20 6e 75  6d 62 65 72 20 0d 20 20  |ation number .  |
00003640  37 30 20 52 45 50 45 41  54 20 0d 20 20 38 30 20  |70 REPEAT .  80 |
00003650  50 52 4f 43 62 63 61 73  74 28 26 42 30 2c 26 38  |PROCbcast(&B0,&8|
00003660  30 2c 22 54 45 4c 45 54  45 58 54 22 29 20 20 20  |0,"TELETEXT")   |
00003670  20 3a 52 45 4d 20 42 72  6f 61 64 63 61 73 74 20  | :REM Broadcast |
00003680  66 6f 72 20 61 20 54 45  4c 45 54 45 58 54 20 73  |for a TELETEXT s|
00003690  65 72 76 65 72 20 0d 20  20 39 30 20 54 49 4d 45  |erver .  90 TIME|
000036a0  3d 30 20 0d 20 31 30 30  20 52 45 50 45 41 54 20  |=0 . 100 REPEAT |
000036b0  55 4e 54 49 4c 20 54 49  4d 45 3e 35 30 20 20 20  |UNTIL TIME>50   |
000036c0  20 20 20 20 20 20 20 20  20 20 3a 52 45 4d 20 57  |          :REM W|
000036d0  61 69 74 20 66 6f 72 20  61 20 77 68 69 6c 65 20  |ait for a while |
000036e0  62 65 66 6f 72 65 20 72  65 74 72 79 69 6e 67 20  |before retrying |
000036f0  0d 20 31 31 30 20 55 4e  54 49 4c 20 46 4e 70 6f  |. 110 UNTIL FNpo|
00003700  6c 6c 5f 72 78 28 72 78  5f 6e 6f 29 3e 31 32 37  |ll_rx(rx_no)>127|
00003710  20 20 20 20 20 20 20 3a  52 45 4d 20 4b 65 65 70  |       :REM Keep|
00003720  20 74 72 79 69 6e 67 20  75 6e 74 69 6c 20 61 20  | trying until a |
00003730  72 65 70 6c 79 20 72 65  63 65 69 76 65 64 20 0d  |reply received .|
00003740  20 31 32 30 20 20 0d 20  31 33 30 20 50 52 4f 43  | 120  . 130 PROC|
00003750  72 65 61 64 5f 72 78 28  72 78 5f 6e 6f 29 20 20  |read_rx(rx_no)  |
00003760  20 20 20 20 20 20 20 20  20 20 20 20 20 3a 52 45  |             :RE|
00003770  4d 20 52 65 61 64 20 74  68 65 20 72 65 63 65 69  |M Read the recei|
00003780  76 65 20 62 6c 6f 63 6b  20 0d 20 31 34 30 20 62  |ve block . 140 b|
00003790  75 66 66 3f 31 31 3d 31  33 20 20 20 20 20 20 20  |uff?11=13       |
000037a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000037b0  3a 52 45 4d 20 43 68 65  63 6b 20 74 68 61 74 20  |:REM Check that |
000037c0  69 74 20 72 65 61 6c 6c  79 20 77 61 73 20 61 20  |it really was a |
000037d0  54 45 4c 45 54 45 58 54  20 0d 20 31 35 30 20 55  |TELETEXT . 150 U|
000037e0  4e 54 49 4c 20 24 28 62  75 66 66 2b 33 29 3d 22  |NTIL $(buff+3)="|
000037f0  54 45 4c 45 54 45 58 54  22 20 20 20 20 20 20 20  |TELETEXT"       |
00003800  3a 52 45 4d 20 20 20 73  65 72 76 65 72 20 77 68  |:REM   server wh|
00003810  69 63 68 20 72 65 73 70  6f 6e 64 65 64 20 0d 20  |ich responded . |
00003820  31 36 30 20 73 65 72 76  65 72 25 3d 62 6c 6b 25  |160 server%=blk%|
00003830  21 33 20 41 4e 44 20 26  46 46 46 46 20 20 20 20  |!3 AND &FFFF    |
00003840  20 20 20 20 20 3a 52 45  4d 20 52 65 61 64 20 74  |     :REM Read t|
00003850  68 65 20 73 65 72 76 65  72 27 73 20 6e 75 6d 62  |he server's numb|
00003860  65 72 20 0d 20 31 37 30  20 62 61 73 65 5f 70 6f  |er . 170 base_po|
00003870  72 74 3d 62 75 66 66 3f  31 20 20 20 20 20 20 20  |rt=buff?1       |
00003880  20 20 20 20 20 20 20 20  20 20 3a 52 45 4d 20 52  |          :REM R|
00003890  65 61 64 20 74 68 65 20  62 61 73 65 20 70 6f 72  |ead the base por|
000038a0  74 20 6e 75 6d 62 65 72  20 0d 20 31 38 30 20 72  |t number . 180 r|
000038b0  78 5f 6e 6f 3d 46 4e 73  65 74 5f 75 70 5f 72 78  |x_no=FNset_up_rx|
000038c0  28 62 61 73 65 5f 70 6f  72 74 2c 73 65 72 76 65  |(base_port,serve|
000038d0  72 25 2c 62 75 66 66 2c  26 32 30 29 20 3a 52 45  |r%,buff,&20) :RE|
000038e0  4d 20 53 65 74 20 75 70  20 61 20 72 65 63 65 69  |M Set up a recei|
000038f0  76 65 20 62 6c 6b 20 0d  20 31 39 30 20 52 45 50  |ve blk . 190 REP|
00003900  45 41 54 20 20 20 20 20  20 20 20 20 20 20 20 20  |EAT             |
00003910  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003920  20 20 20 20 20 20 20 20  20 20 20 3a 52 45 4d 20  |           :REM |
00003930  20 20 66 6f 72 20 74 68  65 20 74 69 6d 65 20 0d  |  for the time .|
00003940  20 32 30 30 20 52 45 50  45 41 54 20 0d 20 32 31  | 200 REPEAT . 21|
00003950  30 20 50 52 4f 43 74 78  28 26 38 34 2c 62 61 73  |0 PROCtx(&84,bas|
00003960  65 5f 70 6f 72 74 2b 31  2c 73 65 72 76 65 72 25  |e_port+1,server%|
00003970  2c 62 75 66 66 2c 31 29  20 3a 52 45 4d 20 54 72  |,buff,1) :REM Tr|
00003980  61 6e 73 6d 69 74 20 72  65 71 75 65 73 74 20 66  |ansmit request f|
00003990  6f 72 20 74 68 65 20 74  69 6d 65 20 0d 20 32 32  |or the time . 22|
000039a0  30 20 54 49 4d 45 3d 30  20 20 20 20 20 20 20 20  |0 TIME=0        |
000039b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000039c0  20 20 20 3a 52 45 4d 20  57 61 69 74 20 66 6f 72  |   :REM Wait for|
000039d0  20 61 20 77 68 69 6c 65  20 62 65 66 6f 72 65 20  | a while before |
000039e0  72 65 74 72 79 69 6e 67  20 0d 20 32 33 30 20 52  |retrying . 230 R|
000039f0  45 50 45 41 54 20 55 4e  54 49 4c 20 54 49 4d 45  |EPEAT UNTIL TIME|
00003a00  3e 35 30 20 0d 20 32 34  30 20 72 65 73 75 6c 74  |>50 . 240 result|
00003a10  25 3d 46 4e 70 6f 6c 6c  5f 74 78 20 0d 20 32 35  |%=FNpoll_tx . 25|
00003a20  30 20 55 4e 54 49 4c 20  72 65 73 75 6c 74 25 3d  |0 UNTIL result%=|
00003a30  30 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |0               |
00003a40  20 20 20 3a 52 45 4d 20  4b 65 65 70 20 74 72 79  |   :REM Keep try|
00003a50  69 6e 67 20 75 6e 74 69  6c 20 74 72 61 6e 73 6d  |ing until transm|
00003a60  69 74 20 73 75 63 63 65  65 64 73 20 0d 20 32 36  |it succeeds . 26|
00003a70  30 20 55 4e 54 49 4c 20  46 4e 70 6f 6c 6c 5f 72  |0 UNTIL FNpoll_r|
00003a80  78 28 72 78 5f 6e 6f 29  3e 31 32 37 20 20 20 20  |x(rx_no)>127    |
00003a90  20 20 20 3a 52 45 4d 20  4b 65 65 70 20 74 72 79  |   :REM Keep try|
00003aa0  69 6e 67 20 75 6e 74 69  6c 20 77 65 20 67 65 74  |ing until we get|
00003ab0  20 61 20 72 65 70 6c 79  20 0d 20 32 37 30 20 50  | a reply . 270 P|
00003ac0  52 4f 43 72 65 61 64 5f  72 78 28 72 78 5f 6e 6f  |ROCread_rx(rx_no|
00003ad0  29 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |)               |
00003ae0  3a 52 45 4d 20 52 65 61  64 20 74 68 65 20 72 65  |:REM Read the re|
00003af0  63 65 69 76 65 20 62 6c  6f 63 6b 20 0d 20 32 38  |ceive block . 28|
00003b00  30 20 20 0d 20 32 39 30  20 62 75 66 66 3f 31 39  |0  . 290 buff?19|
00003b10  3d 31 33 20 0d 20 33 30  30 20 64 61 74 65 24 3d  |=13 . 300 date$=|
00003b20  24 28 62 75 66 66 2b 39  29 20 20 20 20 20 20 20  |$(buff+9)       |
00003b30  20 20 20 20 20 20 20 20  20 20 20 3a 52 45 4d 20  |           :REM |
00003b40  52 65 61 64 20 74 68 65  20 64 61 74 65 20 0d 20  |Read the date . |
00003b50  33 31 30 20 62 75 66 66  3f 39 3d 31 33 20 0d 20  |310 buff?9=13 . |
00003b60  33 32 30 20 74 69 6d 65  24 3d 24 28 62 75 66 66  |320 time$=$(buff|
00003b70  2b 31 29 20 20 20 20 20  20 20 20 20 20 20 20 20  |+1)             |
00003b80  20 20 20 20 20 3a 52 45  4d 20 52 65 61 64 20 74  |     :REM Read t|
00003b90  68 65 20 74 69 6d 65 20  0d 20 33 33 30 20 50 52  |he time . 330 PR|
00003ba0  49 4e 54 22 54 68 65 20  74 69 6d 65 20 69 73 20  |INT"The time is |
00003bb0  22 3b 74 69 6d 65 24 3b  22 20 6f 6e 20 22 3b 64  |";time$;" on ";d|
00003bc0  61 74 65 24 20 0d 20 33  34 30 20 45 4e 44 20 0d  |ate$ . 340 END .|
00003bd0  20 33 35 30 20 20 0d 20  33 36 30 20 44 45 46 50  | 350  . 360 DEFP|
00003be0  52 4f 43 62 63 61 73 74  28 70 25 2c 63 62 25 2c  |ROCbcast(p%,cb%,|
00003bf0  73 65 72 76 65 72 24 29  20 0d 20 33 37 30 20 3f  |server$) . 370 ?|
00003c00  62 6c 6b 25 3d 63 62 25  20 0d 20 33 38 30 20 62  |blk%=cb% . 380 b|
00003c10  6c 6b 25 3f 31 3d 70 25  20 0d 20 33 39 30 20 62  |lk%?1=p% . 390 b|
00003c20  6c 6b 25 21 32 3d 26 46  46 46 46 20 0d 20 34 30  |lk%!2=&FFFF . 40|
00003c30  30 20 24 28 62 6c 6b 25  2b 34 29 3d 73 65 72 76  |0 $(blk%+4)=serv|
00003c40  65 72 24 20 0d 20 34 31  30 20 58 25 3d 62 6c 6b  |er$ . 410 X%=blk|
00003c50  25 3a 59 25 3d 58 25 20  44 49 56 20 32 35 36 3a  |%:Y%=X% DIV 256:|
00003c60  41 25 3d 26 31 30 20 0d  20 34 32 30 20 43 41 4c  |A%=&10 . 420 CAL|
00003c70  4c 20 6f 73 77 6f 72 64  20 0d 20 34 33 30 20 45  |L osword . 430 E|
00003c80  4e 44 50 52 4f 43 20 0d  20 34 34 30 20 20 0d 20  |NDPROC . 440  . |
00003c90  34 35 30 20 44 45 46 46  4e 73 65 74 5f 75 70 5f  |450 DEFFNset_up_|
00003ca0  72 78 28 70 25 2c 73 74  25 2c 62 25 2c 6c 25 29  |rx(p%,st%,b%,l%)|
00003cb0  20 0d 20 34 36 30 20 3f  62 6c 6b 25 3d 30 20 0d  | . 460 ?blk%=0 .|
00003cc0  20 34 37 30 20 62 6c 6b  25 3f 31 3d 26 37 46 20  | 470 blk%?1=&7F |
00003cd0  0d 20 34 38 30 20 62 6c  6b 25 3f 32 3d 70 25 20  |. 480 blk%?2=p% |
00003ce0  0d 20 34 39 30 20 62 6c  6b 25 21 33 3d 73 74 25  |. 490 blk%!3=st%|
00003cf0  20 0d 20 35 30 30 20 62  6c 6b 25 21 35 3d 62 25  | . 500 blk%!5=b%|
00003d00  20 0d 20 35 31 30 20 62  6c 6b 25 21 39 3d 62 25  | . 510 blk%!9=b%|
00003d10  2b 6c 25 20 0d 20 35 32  30 20 58 25 3d 62 6c 6b  |+l% . 520 X%=blk|
00003d20  25 3a 59 25 3d 58 25 20  44 49 56 20 32 35 36 3a  |%:Y%=X% DIV 256:|
00003d30  41 25 3d 26 31 31 20 0d  20 35 33 30 20 43 41 4c  |A%=&11 . 530 CAL|
00003d40  4c 20 6f 73 77 6f 72 64  20 0d 20 35 34 30 20 3d  |L osword . 540 =|
00003d50  3f 62 6c 6b 25 20 0d 20  35 35 30 20 20 0d 20 35  |?blk% . 550  . 5|
00003d60  36 30 20 44 45 46 46 4e  70 6f 6c 6c 5f 72 78 28  |60 DEFFNpoll_rx(|
00003d70  72 25 29 20 0d 20 35 37  30 20 41 25 3d 26 33 33  |r%) . 570 A%=&33|
00003d80  3a 58 25 3d 72 25 20 0d  20 35 38 30 20 3d 55 53  |:X%=r% . 580 =US|
00003d90  52 28 6f 73 62 79 74 65  29 20 41 4e 44 20 26 38  |R(osbyte) AND &8|
00003da0  30 30 30 20 0d 20 35 39  30 20 20 0d 20 36 30 30  |000 . 590  . 600|
00003db0  20 44 45 46 50 52 4f 43  72 65 61 64 5f 72 78 28  | DEFPROCread_rx(|
00003dc0  72 25 29 20 0d 20 36 31  30 20 3f 62 6c 6b 25 3d  |r%) . 610 ?blk%=|
00003dd0  72 25 20 0d 20 36 32 30  20 58 25 3d 62 6c 6b 25  |r% . 620 X%=blk%|
00003de0  3a 59 25 3d 58 25 20 44  49 56 20 32 35 36 3a 41  |:Y%=X% DIV 256:A|
00003df0  25 3d 26 31 31 20 0d 20  36 33 30 20 43 41 4c 4c  |%=&11 . 630 CALL|
00003e00  20 6f 73 77 6f 72 64 20  0d 20 36 34 30 20 45 4e  | osword . 640 EN|
00003e10  44 50 52 4f 43 20 0d 20  36 35 30 20 20 0d 20 36  |DPROC . 650  . 6|
00003e20  36 30 20 44 45 46 50 52  4f 43 74 78 28 63 62 25  |60 DEFPROCtx(cb%|
00003e30  2c 70 25 2c 73 74 25 2c  62 25 2c 6c 25 29 20 0d  |,p%,st%,b%,l%) .|
00003e40  20 36 37 30 20 3f 62 6c  6b 25 3d 63 62 25 20 0d  | 670 ?blk%=cb% .|
00003e50  20 36 38 30 20 62 6c 6b  25 3f 31 3d 70 25 20 0d  | 680 blk%?1=p% .|
00003e60  20 36 39 30 20 62 6c 6b  25 21 32 3d 73 74 25 20  | 690 blk%!2=st% |
00003e70  0d 20 37 30 30 20 62 6c  6b 25 21 34 3d 62 25 20  |. 700 blk%!4=b% |
00003e80  0d 20 37 31 30 20 62 6c  6b 25 21 38 3d 62 25 2b  |. 710 blk%!8=b%+|
00003e90  6c 25 20 0d 20 37 32 30  20 58 25 3d 62 6c 6b 25  |l% . 720 X%=blk%|
00003ea0  3a 59 25 3d 58 25 20 44  49 56 20 32 35 36 3a 41  |:Y%=X% DIV 256:A|
00003eb0  25 3d 26 31 30 20 0d 20  37 33 30 20 43 41 4c 4c  |%=&10 . 730 CALL|
00003ec0  20 6f 73 77 6f 72 64 20  0d 20 37 34 30 20 45 4e  | osword . 740 EN|
00003ed0  44 50 52 4f 43 20 0d 20  37 35 30 20 20 0d 20 37  |DPROC . 750  . 7|
00003ee0  36 30 20 44 45 46 46 4e  70 6f 6c 6c 5f 74 78 20  |60 DEFFNpoll_tx |
00003ef0  0d 20 37 37 30 20 52 45  50 45 41 54 20 0d 20 37  |. 770 REPEAT . 7|
00003f00  38 30 20 41 25 3d 26 33  32 20 0d 20 37 39 30 20  |80 A%=&32 . 790 |
00003f10  74 65 73 74 25 3d 28 55  53 52 28 6f 73 62 79 74  |test%=(USR(osbyt|
00003f20  65 29 20 41 4e 44 20 26  46 46 30 30 29 20 44 49  |e) AND &FF00) DI|
00003f30  56 20 26 31 30 30 20 0d  20 38 30 30 20 55 4e 54  |V &100 . 800 UNT|
00003f40  49 4c 20 74 65 73 74 25  3c 31 32 38 20 0d 20 38  |IL test%<128 . 8|
00003f50  31 30 20 3d 74 65 73 74  25 20 0d 20 0d 20 0d 20  |10 =test% . . . |
00003f60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003f70  20 20 20 20 20 20 20 20  20 20 20 20 20 53 45 52  |             SER|
00003f80  56 45 52 20 45 78 74 65  6e 73 69 6f 6e 73 20 0d  |VER Extensions .|
00003f90  20 0d 41 73 20 79 6f 75  20 20 77 69 6c 6c 20 20  | .As you  will  |
00003fa0  66 69 6e 64 20 20 69 6e  20 20 74 68 65 20 20 70  |find  in  the  p|
00003fb0  72 6f 74 6f 63 6f 6c 73  20 20 73 65 63 74 69 6f  |rotocols  sectio|
00003fc0  6e 20 20 6f 66 20 20 74  68 69 73 20 20 61 72 74  |n  of  this  art|
00003fd0  69 63 6c 65 20 20 61 20  20 66 75 72 74 68 65 72  |icle  a  further|
00003fe0  20 0d 6e 6f 6e 2d 74 65  6c 65 74 65 78 74 20 20  | .non-teletext  |
00003ff0  72 65 6c 61 74 65 64 20  20 63 61 6c 6c 20 68 61  |related  call ha|
00004000  73 20 62 65 65 6e 20 69  6e 63 6c 75 64 65 64 20  |s been included |
00004010  69 6e 20 74 68 65 20 53  45 52 56 45 52 2e 20 54  |in the SERVER. T|
00004020  68 69 73 20 63 61 6c 6c  20 72 65 74 75 72 6e 73  |his call returns|
00004030  20 0d 74 68 65 20 76 61  6c 75 65 20 6f 66 20 74  | .the value of t|
00004040  68 65 20 61 6e 61 6c 6f  67 75 65 20 70 6f 72 74  |he analogue port|
00004050  73 2e 20 54 68 69 73 20  6d 65 61 6e 73 20 76 61  |s. This means va|
00004060  72 69 6f 75 73 20 64 65  76 69 63 65 73 20 63 61  |rious devices ca|
00004070  6e 20 62 65 20 61 74 74  61 63 68 65 64 20 74 6f  |n be attached to|
00004080  20 0d 74 68 65 20 20 61  6e 61 6c 6f 67 75 65 20  | .the  analogue |
00004090  20 70 6f 72 74 20 20 6f  66 20 20 74 68 65 20 20  | port  of  the  |
000040a0  53 45 52 56 45 52 20 20  61 6e 64 20 20 63 61 6e  |SERVER  and  can|
000040b0  20 62 65 20 73 61 6d 70  6c 65 64 20 66 72 6f 6d  | be sampled from|
000040c0  20 61 6e 79 77 68 65 72  65 20 6f 6e 20 74 68 65  | anywhere on the|
000040d0  20 0d 6e 65 74 77 6f 72  6b 2e 20 57 65 20 61 72  | .network. We ar|
000040e0  65 20 75 73 69 6e 67 20  74 68 69 73 20 74 6f 20  |e using this to |
000040f0  6d 6f 6e 69 74 6f 72 20  74 68 65 20 6f 75 74 73  |monitor the outs|
00004100  69 64 65 20 74 65 6d 70  65 72 61 74 75 72 65 2e  |ide temperature.|
00004110  20 0d 20 0d 20 0d 20 20  20 20 20 20 20 20 20 20  | . . .          |
00004120  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004130  54 45 4c 45 54 45 58 54  20 53 45 52 56 45 52 20  |TELETEXT SERVER |
00004140  50 52 4f 54 4f 43 4f 4c  53 20 0d 20 0d 41 6c 6c  |PROTOCOLS . .All|
00004150  20 63 6f 6d 6d 75 6e 69  63 61 74 69 6f 6e 73 20  | communications |
00004160  62 65 74 77 65 65 6e 20  20 74 65 6c 65 73 65 72  |between  teleser|
00004170  76 65 72 20 20 61 6e 64  20 20 63 6c 69 65 6e 74  |ver  and  client|
00004180  20 20 61 72 65 20 20 63  6f 6e 64 75 63 74 65 64  |  are  conducted|
00004190  20 20 6f 6e 20 20 70 6f  72 74 73 20 0d 62 61 73  |  on  ports .bas|
000041a0  65 2d 62 61 73 65 2b 33  20 20 28 63 75 72 72 65  |e-base+3  (curre|
000041b0  6e 74 6c 79 20 20 26 42  32 2d 26 42 35 29 2e 20  |ntly  &B2-&B5). |
000041c0  20 54 72 61 6e 73 6d 69  73 73 69 6f 6e 73 20 66  | Transmissions f|
000041d0  72 6f 6d 20 63 6c 69 65  6e 74 20 74 6f 20 73 65  |rom client to se|
000041e0  72 76 65 72 20 61 72 65  20 6f 6e 20 0d 70 6f 72  |rver are on .por|
000041f0  74 20 26 42 33 20 61 6e  64 20 72 65 70 6c 69 65  |t &B3 and replie|
00004200  73 20 66 72 6f 6d 20 74  68 65 20 73 65 72 76 65  |s from the serve|
00004210  72 20 61 72 65 20 6f 6e  20 70 6f 72 74 20 26 42  |r are on port &B|
00004220  32 2e 20 50 6f 72 74 20  26 42 35 20 69 73 20 72  |2. Port &B5 is r|
00004230  65 73 65 72 76 65 64 20  66 6f 72 20 0d 62 72 6f  |eserved for .bro|
00004240  61 64 63 61 73 74 69 6e  67 20 20 74 68 65 20 20  |adcasting  the  |
00004250  63 75 72 72 65 6e 74 20  20 70 61 67 65 20 6e 75  |current  page nu|
00004260  6d 62 65 72 20 62 65 69  6e 67 20 70 69 63 6b 65  |mber being picke|
00004270  64 20 75 70 20 62 79 20  74 68 65 20 73 65 72 76  |d up by the serv|
00004280  65 72 20 61 6e 64 20 70  6f 72 74 20 0d 26 42 34  |er and port .&B4|
00004290  20 69 73 20 75 73 65 64  20 66 6f 72 20 74 72 61  | is used for tra|
000042a0  6e 73 6d 69 74 74 69 6e  67 20 74 68 65 20 70 61  |nsmitting the pa|
000042b0  67 65 20 69 74 73 65 6c  66 2e 20 0d 20 0d 49 74  |ge itself. . .It|
000042c0  20 69 73 20 6e 65 63 65  73 73 61 72 79 20 74 6f  | is necessary to|
000042d0  20 75 73 65 20 66 6f 75  72 20 70 6f 72 74 73 20  | use four ports |
000042e0  62 65 63 61 75 73 65 20  74 68 65 20 63 6c 69 65  |because the clie|
000042f0  6e 74 20 6d 61 79 20 77  69 73 68 20 20 74 6f 20  |nt may wish  to |
00004300  20 68 61 76 65 20 20 74  68 72 65 65 20 0d 72 65  | have  three .re|
00004310  63 65 69 76 65 20 20 62  6c 6f 63 6b 73 20 20 6f  |ceive  blocks  o|
00004320  70 65 6e 20 20 61 74 20  20 74 68 65 20 20 73 61  |pen  at  the  sa|
00004330  6d 65 20 20 74 69 6d 65  2e 20 4f 6e 65 20 74 6f  |me  time. One to|
00004340  20 63 6f 6e 74 69 6e 75  61 6c 6c 79 20 75 70 64  | continually upd|
00004350  61 74 65 20 74 68 65 20  70 61 67 65 20 0d 68 65  |ate the page .he|
00004360  61 64 65 72 2c 20 6f 6e  65 20 74 6f 20 72 65 71  |ader, one to req|
00004370  75 65 73 74 20 6f 74 68  65 72 20 69 6e 66 6f 72  |uest other infor|
00004380  6d 61 74 69 6f 6e 20 61  6e 64 20 6f 6e 65 20 74  |mation and one t|
00004390  6f 20 72 65 63 65 69 76  65 20 74 68 65 20 70 61  |o receive the pa|
000043a0  67 65 20 69 74 73 65 6c  66 2e 20 0d 20 0d 54 68  |ge itself. . .Th|
000043b0  65 20 70 61 67 65 20 63  75 72 72 65 6e 74 6c 79  |e page currently|
000043c0  20 62 65 69 6e 67 20 72  65 63 65 69 76 65 64 20  | being received |
000043d0  69 73 20 62 72 6f 61 64  63 61 73 74 20 6f 6e 20  |is broadcast on |
000043e0  70 6f 72 74 20 26 42 35  20 61 6e 64 20 63 6f 6e  |port &B5 and con|
000043f0  73 69 73 74 73 20 6f 66  20 34 20 0d 62 79 74 65  |sists of 4 .byte|
00004400  73 3a 20 0d 20 0d 42 79  74 65 20 31 20 20 20 20  |s: . .Byte 1    |
00004410  20 20 43 68 61 6e 6e 65  6c 20 6e 75 6d 62 65 72  |  Channel number|
00004420  20 69 6e 20 41 53 43 49  49 20 0d 42 79 74 65 73  | in ASCII .Bytes|
00004430  20 32 2d 34 20 20 20 50  61 67 65 20 6e 75 6d 62  | 2-4   Page numb|
00004440  65 72 20 69 6e 20 41 53  43 49 49 20 0d 20 0d 41  |er in ASCII . .A|
00004450  6c 6c 20 74 72 61 6e 73  6d 69 73 73 69 6f 6e 73  |ll transmissions|
00004460  20 74 6f 20 74 68 65 20  74 65 6c 65 73 65 72 76  | to the teleserv|
00004470  65 72 20 77 69 6c 6c 20  72 65 73 75 6c 74 20 69  |er will result i|
00004480  6e 20 61 20 20 72 65 70  6c 79 20 20 62 65 69 6e  |n a  reply  bein|
00004490  67 20 20 73 65 6e 74 2e  20 20 54 68 65 20 0d 74  |g  sent.  The .t|
000044a0  65 6c 65 73 65 72 76 65  72 20 20 67 69 76 65 73  |eleserver  gives|
000044b0  20 20 75 70 20 69 66 20  61 20 27 4e 6f 74 20 6c  |  up if a 'Not l|
000044c0  69 73 74 65 6e 69 6e 67  27 20 65 72 72 6f 72 20  |istening' error |
000044d0  6f 63 63 75 72 73 20 35  20 74 69 6d 65 73 2e 20  |occurs 5 times. |
000044e0  54 68 65 72 65 20 61 72  65 20 74 77 6f 20 0d 73  |There are two .s|
000044f0  74 61 6e 64 61 72 64 20  66 6f 72 6d 73 20 6f 66  |tandard forms of|
00004500  20 72 65 70 6c 79 2e 20  0d 20 0d 61 29 20 20 49  | reply. . .a)  I|
00004510  66 20 20 61 6e 20 20 65  72 72 6f 72 20 20 68 61  |f  an  error  ha|
00004520  73 20 20 6f 63 63 75 72  72 65 64 20 28 65 67 20  |s  occurred (eg |
00004530  79 6f 75 20 68 61 76 65  20 72 65 71 75 65 73 74  |you have request|
00004540  65 64 20 61 20 73 69 6c  6c 79 20 70 61 67 65 20  |ed a silly page |
00004550  6e 75 6d 62 65 72 20 6f  72 20 0d 20 20 20 20 63  |number or .    c|
00004560  68 61 6e 6e 65 6c 20 6e  75 6d 62 65 72 29 20 74  |hannel number) t|
00004570  68 65 6e 20 74 68 65 20  66 69 72 73 74 20 62 79  |hen the first by|
00004580  74 65 20 6f 66 20 74 68  65 20 72 65 70 6c 79 20  |te of the reply |
00004590  64 61 74 61 20 20 77 69  6c 6c 20 20 62 65 20 20  |data  will  be  |
000045a0  61 6e 20 20 65 72 72 6f  72 20 0d 20 20 20 20 6e  |an  error .    n|
000045b0  75 6d 62 65 72 20 20 61  6e 64 20 20 74 68 65 20  |umber  and  the |
000045c0  20 66 6f 6c 6c 6f 77 69  6e 67 20 62 79 74 65 73  | following bytes|
000045d0  20 77 69 6c 6c 20 62 65  20 61 6e 20 65 72 72 6f  | will be an erro|
000045e0  72 20 6d 65 73 73 61 67  65 20 74 65 72 6d 69 6e  |r message termin|
000045f0  61 74 65 64 20 62 79 20  61 20 0d 20 20 20 20 63  |ated by a .    c|
00004600  61 72 72 69 61 67 65 20  72 65 74 75 72 6e 2e 20  |arriage return. |
00004610  0d 20 20 0d 62 29 20 20  49 66 20 6e 6f 20 65 72  |.  .b)  If no er|
00004620  72 6f 72 20 68 61 73 20  6f 63 63 75 72 72 65 64  |ror has occurred|
00004630  20 74 68 65 20 66 69 72  73 74 20 62 79 74 65 20  | the first byte |
00004640  6f 66 20 74 68 65 20 72  65 70 6c 79 20 64 61 74  |of the reply dat|
00004650  61 20 77 69 6c 6c 20 62  65 20 7a 65 72 6f 20 61  |a will be zero a|
00004660  6e 64 20 0d 20 20 20 20  74 68 65 20 73 75 62 73  |nd .    the subs|
00004670  65 71 75 65 6e 74 20 62  79 74 65 73 20 77 69 6c  |equent bytes wil|
00004680  6c 20 62 65 20 64 65 70  65 6e 64 65 6e 74 20 6f  |l be dependent o|
00004690  6e 20 74 68 65 20 63 61  6c 6c 20 69 73 73 75 65  |n the call issue|
000046a0  64 2e 20 0d 20 0d 72 65  61 64 20 74 65 6c 65 73  |d. . .read teles|
000046b0  65 72 76 65 72 20 76 65  72 73 69 6f 6e 20 6e 75  |erver version nu|
000046c0  6d 62 65 72 20 0d 20 0d  31 2f 63 6c 69 65 6e 74  |mber . .1/client|
000046d0  20 74 6f 20 74 65 6c 65  73 65 72 76 65 72 20 0d  | to teleserver .|
000046e0  20 0d 70 6f 72 74 20 20  20 20 20 20 20 20 20 20  | .port          |
000046f0  20 26 42 33 20 0d 63 6f  6e 74 72 6f 6c 20 62 79  | &B3 .control by|
00004700  74 65 20 20 20 26 38 30  20 0d 64 61 74 61 20 20  |te   &80 .data  |
00004710  20 20 20 20 20 20 20 20  20 6e 69 6c 20 0d 20 0d  |         nil . .|
00004720  32 2f 74 65 6c 65 73 65  72 76 65 72 20 74 6f 20  |2/teleserver to |
00004730  63 6c 69 65 6e 74 20 0d  20 0d 70 6f 72 74 20 20  |client . .port  |
00004740  20 20 20 20 20 20 20 20  20 26 42 32 20 0d 63 6f  |         &B2 .co|
00004750  6e 74 72 6f 6c 20 62 79  74 65 20 20 20 26 38 30  |ntrol byte   &80|
00004760  20 0d 64 61 74 61 20 20  20 20 20 20 20 20 20 20  | .data          |
00004770  20 30 20 6f 72 20 65 72  72 6f 72 20 6e 75 6d 62  | 0 or error numb|
00004780  65 72 20 0d 64 61 74 61  2b 31 20 20 20 20 20 20  |er .data+1      |
00004790  20 20 20 76 65 72 73 69  6f 6e 20 20 6e 75 6d 62  |   version  numb|
000047a0  65 72 20 20 61 73 20 20  63 68 61 72 61 63 74 65  |er  as  characte|
000047b0  72 20 20 73 74 72 69 6e  67 20 20 74 65 72 6d 69  |r  string  termi|
000047c0  6e 61 74 65 64 20 20 62  79 20 63 61 72 72 69 61  |nated  by carria|
000047d0  67 65 20 0d 20 20 20 20  20 20 20 20 20 20 20 20  |ge .            |
000047e0  20 20 20 72 65 74 75 72  6e 2e 20 0d 0d 69 73 73  |   return. ..iss|
000047f0  75 65 20 70 61 67 65 20  72 65 71 75 65 73 74 20  |ue page request |
00004800  0d 20 0d 31 2f 63 6c 69  65 6e 74 20 74 6f 20 74  |. .1/client to t|
00004810  65 6c 65 73 65 72 76 65  72 20 0d 20 0d 70 6f 72  |eleserver . .por|
00004820  74 20 20 20 20 20 20 20  20 20 20 20 26 42 33 20  |t           &B3 |
00004830  0d 63 6f 6e 74 72 6f 6c  20 62 79 74 65 20 20 20  |.control byte   |
00004840  26 38 31 20 0d 64 61 74  61 20 20 20 20 20 20 20  |&81 .data       |
00004850  20 20 20 20 63 68 61 6e  6e 65 6c 20 6e 75 6d 62  |    channel numb|
00004860  65 72 20 69 6e 20 41 53  43 49 49 20 0d 64 61 74  |er in ASCII .dat|
00004870  61 2b 31 2d 64 61 74 61  2b 33 20 20 70 61 67 65  |a+1-data+3  page|
00004880  20 6e 75 6d 62 65 72 20  69 6e 20 41 53 43 49 49  | number in ASCII|
00004890  20 0d 20 0d 32 2f 74 65  6c 65 73 65 72 76 65 72  | . .2/teleserver|
000048a0  20 74 6f 20 63 6c 69 65  6e 74 20 0d 20 0d 70 6f  | to client . .po|
000048b0  72 74 20 20 20 20 20 20  20 20 20 20 20 26 42 32  |rt           &B2|
000048c0  20 0d 63 6f 6e 74 72 6f  6c 20 62 79 74 65 20 20  | .control byte  |
000048d0  20 26 38 31 20 0d 64 61  74 61 20 20 20 20 20 20  | &81 .data      |
000048e0  20 20 20 20 20 30 20 6f  72 20 65 72 72 6f 72 20  |     0 or error |
000048f0  6e 75 6d 62 65 72 20 0d  64 61 74 61 2b 31 20 20  |number .data+1  |
00004900  20 20 20 20 20 20 20 70  6f 73 69 74 69 6f 6e 20  |       position |
00004910  69 6e 20 71 75 65 75 65  20 0d 20 0d 63 61 6e 63  |in queue . .canc|
00004920  65 6c 20 70 61 67 65 20  72 65 71 75 65 73 74 20  |el page request |
00004930  0d 20 0d 31 2f 63 6c 69  65 6e 74 20 74 6f 20 74  |. .1/client to t|
00004940  65 6c 65 73 65 72 76 65  72 20 0d 20 0d 70 6f 72  |eleserver . .por|
00004950  74 20 20 20 20 20 20 20  20 20 20 20 26 42 33 20  |t           &B3 |
00004960  0d 63 6f 6e 74 72 6f 6c  20 62 79 74 65 20 20 20  |.control byte   |
00004970  26 38 32 20 0d 64 61 74  61 20 20 20 20 20 20 20  |&82 .data       |
00004980  20 20 20 20 6e 69 6c 20  0d 20 0d 32 2f 74 65 6c  |    nil . .2/tel|
00004990  65 73 65 72 76 65 72 20  74 6f 20 63 6c 69 65 6e  |eserver to clien|
000049a0  74 20 0d 20 0d 70 6f 72  74 20 20 20 20 20 20 20  |t . .port       |
000049b0  20 20 20 20 26 42 32 20  0d 63 6f 6e 74 72 6f 6c  |    &B2 .control|
000049c0  20 62 79 74 65 20 20 20  26 38 32 20 0d 64 61 74  | byte   &82 .dat|
000049d0  61 20 20 20 20 20 20 20  20 20 20 20 30 20 6f 72  |a           0 or|
000049e0  20 65 72 72 6f 72 20 6e  75 6d 62 65 72 20 0d 64  | error number .d|
000049f0  61 74 61 2b 31 20 20 20  20 20 20 20 20 20 6e 69  |ata+1         ni|
00004a00  6c 20 0d 20 0d 72 65 61  64 20 6d 61 78 20 75 73  |l . .read max us|
00004a10  65 72 73 20 70 65 72 20  63 68 61 6e 6e 65 6c 20  |ers per channel |
00004a20  0d 20 0d 31 2f 63 6c 69  65 6e 74 20 74 6f 20 74  |. .1/client to t|
00004a30  65 6c 65 73 65 72 76 65  72 20 0d 20 0d 70 6f 72  |eleserver . .por|
00004a40  74 20 20 20 20 20 20 20  20 20 20 20 26 42 33 20  |t           &B3 |
00004a50  0d 63 6f 6e 74 72 6f 6c  20 62 79 74 65 20 20 20  |.control byte   |
00004a60  26 38 33 20 0d 64 61 74  61 20 20 20 20 20 20 20  |&83 .data       |
00004a70  20 20 20 20 6e 69 6c 20  0d 20 0d 32 2f 74 65 6c  |    nil . .2/tel|
00004a80  65 73 65 72 76 65 72 20  74 6f 20 63 6c 69 65 6e  |eserver to clien|
00004a90  74 20 0d 20 0d 70 6f 72  74 20 20 20 20 20 20 20  |t . .port       |
00004aa0  20 20 20 20 26 42 32 20  0d 63 6f 6e 74 72 6f 6c  |    &B2 .control|
00004ab0  20 62 79 74 65 20 20 20  26 38 33 20 0d 64 61 74  | byte   &83 .dat|
00004ac0  61 20 20 20 20 20 20 20  20 20 20 20 30 20 6f 72  |a           0 or|
00004ad0  20 65 72 72 6f 72 20 6e  75 6d 62 65 72 20 0d 64  | error number .d|
00004ae0  61 74 61 2b 31 20 20 20  20 20 20 20 20 20 6d 61  |ata+1         ma|
00004af0  78 20 75 73 65 72 73 20  0d 20 0d 72 65 61 64 20  |x users . .read |
00004b00  64 61 74 65 20 61 6e 64  20 74 69 6d 65 20 0d 20  |date and time . |
00004b10  0d 31 2f 63 6c 69 65 6e  74 20 74 6f 20 74 65 6c  |.1/client to tel|
00004b20  65 73 65 72 76 65 72 20  0d 20 0d 70 6f 72 74 20  |eserver . .port |
00004b30  20 20 20 20 20 20 20 20  20 20 26 42 33 20 0d 63  |          &B3 .c|
00004b40  6f 6e 74 72 6f 6c 20 62  79 74 65 20 20 20 26 38  |ontrol byte   &8|
00004b50  34 20 0d 64 61 74 61 20  20 20 20 20 20 20 20 20  |4 .data         |
00004b60  20 20 6e 69 6c 20 0d 20  0d 32 2f 74 65 6c 65 73  |  nil . .2/teles|
00004b70  65 72 76 65 72 20 74 6f  20 63 6c 69 65 6e 74 20  |erver to client |
00004b80  0d 20 0d 70 6f 72 74 20  20 20 20 20 20 20 20 20  |. .port         |
00004b90  20 20 26 42 32 20 0d 63  6f 6e 74 72 6f 6c 20 62  |  &B2 .control b|
00004ba0  79 74 65 20 20 20 26 38  34 20 0d 64 61 74 61 20  |yte   &84 .data |
00004bb0  20 20 20 20 20 20 20 20  20 20 30 20 6f 72 20 65  |          0 or e|
00004bc0  72 72 6f 72 20 6e 75 6d  62 65 72 20 0d 64 61 74  |rror number .dat|
00004bd0  61 2b 31 20 20 20 20 20  20 20 20 20 74 69 6d 65  |a+1         time|
00004be0  20 61 6e 64 20 64 61 74  65 20 69 6e 20 41 53 43  | and date in ASC|
00004bf0  49 49 20 28 48 48 3a 4d  4d 3a 53 53 44 44 2f 4d  |II (HH:MM:SSDD/M|
00004c00  4d 2f 59 59 59 59 29 20  0d 20 0d 6c 6f 67 6f 66  |M/YYYY) . .logof|
00004c10  66 20 0d 20 0d 31 2f 63  6c 69 65 6e 74 20 74 6f  |f . .1/client to|
00004c20  20 74 65 6c 65 73 65 72  76 65 72 20 0d 20 0d 70  | teleserver . .p|
00004c30  6f 72 74 20 20 20 20 20  20 20 20 20 20 20 26 42  |ort           &B|
00004c40  33 20 0d 63 6f 6e 74 72  6f 6c 20 62 79 74 65 20  |3 .control byte |
00004c50  20 20 26 38 35 20 0d 64  61 74 61 20 20 20 20 20  |  &85 .data     |
00004c60  20 20 20 20 20 20 6e 69  6c 20 0d 20 0d 32 2f 74  |      nil . .2/t|
00004c70  65 6c 65 73 65 72 76 65  72 20 74 6f 20 63 6c 69  |eleserver to cli|
00004c80  65 6e 74 20 0d 20 0d 70  6f 72 74 20 20 20 20 20  |ent . .port     |
00004c90  20 20 20 20 20 20 26 42  32 20 0d 63 6f 6e 74 72  |      &B2 .contr|
00004ca0  6f 6c 20 62 79 74 65 20  20 20 26 38 35 20 0d 64  |ol byte   &85 .d|
00004cb0  61 74 61 20 20 20 20 20  20 20 20 20 20 20 30 20  |ata           0 |
00004cc0  6f 72 20 65 72 72 6f 72  20 6e 75 6d 62 65 72 20  |or error number |
00004cd0  0d 64 61 74 61 2b 31 20  20 20 20 20 20 20 20 20  |.data+1         |
00004ce0  6e 69 6c 20 0d 20 0d 70  61 67 65 20 72 65 71 75  |nil . .page requ|
00004cf0  65 73 74 20 77 69 74 68  20 74 69 6d 65 20 64 65  |est with time de|
00004d00  6c 61 79 20 0d 20 0d 31  2f 63 6c 69 65 6e 74 20  |lay . .1/client |
00004d10  74 6f 20 74 65 6c 65 73  65 72 76 65 72 20 0d 20  |to teleserver . |
00004d20  0d 70 6f 72 74 20 20 20  20 20 20 20 20 20 20 20  |.port           |
00004d30  26 42 33 20 0d 63 6f 6e  74 72 6f 6c 20 62 79 74  |&B3 .control byt|
00004d40  65 20 20 20 26 38 36 20  0d 64 61 74 61 20 20 20  |e   &86 .data   |
00004d50  20 20 20 20 20 20 20 20  63 68 61 6e 6e 65 6c 20  |        channel |
00004d60  6e 75 6d 62 65 72 20 69  6e 20 41 53 43 49 49 20  |number in ASCII |
00004d70  0d 64 61 74 61 2b 31 2d  64 61 74 61 2b 33 20 20  |.data+1-data+3  |
00004d80  70 61 67 65 20 6e 75 6d  62 65 72 20 69 6e 20 41  |page number in A|
00004d90  53 43 49 49 20 0d 20 0d  32 2f 74 65 6c 65 73 65  |SCII . .2/telese|
00004da0  72 76 65 72 20 74 6f 20  63 6c 69 65 6e 74 20 0d  |rver to client .|
00004db0  20 0d 70 6f 72 74 20 20  20 20 20 20 20 20 20 20  | .port          |
00004dc0  20 26 42 32 20 0d 63 6f  6e 74 72 6f 6c 20 62 79  | &B2 .control by|
00004dd0  74 65 20 20 20 26 38 36  20 0d 64 61 74 61 20 20  |te   &86 .data  |
00004de0  20 20 20 20 20 20 20 20  20 30 20 6f 72 20 65 72  |         0 or er|
00004df0  72 6f 72 20 6e 75 6d 62  65 72 20 0d 64 61 74 61  |ror number .data|
00004e00  2b 31 20 20 20 20 20 20  20 20 20 70 6f 73 69 74  |+1         posit|
00004e10  69 6f 6e 20 69 6e 20 71  75 65 75 65 20 0d 20 0d  |ion in queue . .|
00004e20  72 65 71 75 65 73 74 20  70 6f 72 74 20 76 61 6c  |request port val|
00004e30  75 65 20 0d 20 0d 31 2f  63 6c 69 65 6e 74 20 74  |ue . .1/client t|
00004e40  6f 20 74 65 6c 65 73 65  72 76 65 72 20 0d 20 0d  |o teleserver . .|
00004e50  70 6f 72 74 20 20 20 20  20 20 20 20 20 20 20 26  |port           &|
00004e60  42 33 20 0d 63 6f 6e 74  72 6f 6c 20 62 79 74 65  |B3 .control byte|
00004e70  20 20 20 26 38 37 20 0d  64 61 74 61 20 20 20 20  |   &87 .data    |
00004e80  20 20 20 20 20 20 20 70  6f 72 74 20 6e 75 6d 62  |       port numb|
00004e90  65 72 20 69 6e 20 72 61  6e 67 65 20 30 20 74 6f  |er in range 0 to|
00004ea0  20 33 20 0d 20 0d 32 2f  74 65 6c 65 73 65 72 76  | 3 . .2/teleserv|
00004eb0  65 72 20 74 6f 20 63 6c  69 65 6e 74 20 0d 20 0d  |er to client . .|
00004ec0  70 6f 72 74 20 20 20 20  20 20 20 20 20 20 20 26  |port           &|
00004ed0  42 32 20 0d 63 6f 6e 74  72 6f 6c 20 62 79 74 65  |B2 .control byte|
00004ee0  20 20 20 26 38 37 20 0d  64 61 74 61 20 20 20 20  |   &87 .data    |
00004ef0  20 20 20 20 20 20 20 30  20 6f 72 20 65 72 72 6f  |       0 or erro|
00004f00  72 20 6e 75 6d 62 65 72  20 0d 64 61 74 61 2b 31  |r number .data+1|
00004f10  2d 64 61 74 61 2b 32 20  20 70 6f 72 74 20 76 61  |-data+2  port va|
00004f20  6c 75 65 20 0d 20 0d 20  0d 52 65 63 65 70 74 69  |lue . . .Recepti|
00004f30  6f 6e 20 6f 66 20 74 68  65 20 74 65 6c 65 74 65  |on of the telete|
00004f40  78 74 20 70 61 67 65 20  0d 20 0d 54 68 65 20 20  |xt page . .The  |
00004f50  74 65 6c 65 73 65 72 76  65 72 20 73 65 6e 64 73  |teleserver sends|
00004f60  20 74 68 65 20 70 61 67  65 20 6f 6e 20 70 6f 72  | the page on por|
00004f70  74 20 26 42 34 2e 20 54  68 65 20 63 6f 6e 74 72  |t &B4. The contr|
00004f80  6f 6c 20 62 79 74 65 20  77 69 6c 6c 20 62 65 20  |ol byte will be |
00004f90  26 38 30 20 69 66 20 6e  6f 20 0d 65 72 72 6f 72  |&80 if no .error|
00004fa0  20 68 61 73 20 6f 63 63  75 72 72 65 64 20 6f 74  | has occurred ot|
00004fb0  68 65 72 77 69 73 65 20  74 68 65 20 63 6f 6e 74  |herwise the cont|
00004fc0  72 6f 6c 20 62 79 74 65  20 77 69 6c 6c 20 62 65  |rol byte will be|
00004fd0  20 26 38 31 2e 20 54 68  65 20 6f 6e 6c 79 20 65  | &81. The only e|
00004fe0  72 72 6f 72 20 74 68 61  74 20 0d 77 69 6c 6c 20  |rror that .will |
00004ff0  20 6f 63 63 75 72 20 20  77 69 6c 6c 20 20 62 65  | occur  will  be|
00005000  20 20 61 20 20 27 54 69  6d 65 64 20 20 6f 75 74  |  a  'Timed  out|
00005010  27 20 20 65 72 72 6f 72  20 69 65 20 79 6f 75 20  |'  error ie you |
00005020  68 61 76 65 20 70 72 6f  62 61 62 6c 79 20 61 73  |have probably as|
00005030  6b 65 64 20 66 6f 72 20  61 20 0d 6e 6f 6e 2d 65  |ked for a .non-e|
00005040  78 69 73 74 65 6e 74 20  70 61 67 65 2e 20 0d 54  |xistent page. .T|
00005050  68 65 20 64 61 74 61 20  69 6e 20 74 68 65 20 72  |he data in the r|
00005060  65 63 65 69 76 65 20 62  6c 6f 63 6b 20 62 75 66  |eceive block buf|
00005070  66 65 72 20 77 69 6c 6c  20 62 65 20 74 68 65 20  |fer will be the |
00005080  70 61 67 65 20 72 65 71  75 65 73 74 65 64 20 69  |page requested i|
00005090  66 20 74 68 65 72 65 20  69 73 20 6e 6f 20 0d 65  |f there is no .e|
000050a0  72 72 6f 72 2c 20 6f 74  68 65 72 77 69 73 65 20  |rror, otherwise |
000050b0  74 68 65 20 64 61 74 61  20 77 69 6c 6c 20 62 65  |the data will be|
000050c0  20 61 6e 20 65 72 72 6f  72 20 6d 65 73 73 61 67  | an error messag|
000050d0  65 20 74 65 72 6d 69 6e  61 74 65 64 20 20 62 79  |e terminated  by|
000050e0  20 20 61 20 20 63 61 72  72 69 61 67 65 20 0d 72  |  a  carriage .r|
000050f0  65 74 75 72 6e 2e 49 66  20 20 79 6f 75 20 20 73  |eturn.If  you  s|
00005100  75 63 63 65 73 73 66 75  6c 6c 79 20 20 72 65 63  |uccessfully  rec|
00005110  65 69 76 65 20 61 20 70  61 67 65 20 74 68 65 6e  |eive a page then|
00005120  20 6c 6f 63 61 74 69 6f  6e 73 20 26 33 46 45 20  | locations &3FE |
00005130  61 6e 64 20 26 33 46 46  20 69 6e 74 6f 20 0d 74  |and &3FF into .t|
00005140  68 65 20 72 65 63 65 69  76 65 20 62 6c 6f 63 6b  |he receive block|
00005150  20 62 75 66 66 65 72 20  77 69 6c 6c 20 63 6f 6e  | buffer will con|
00005160  74 61 69 6e 20 74 68 65  20 73 75 62 20 70 61 67  |tain the sub pag|
00005170  65 20 6e 75 6d 62 65 72  20 69 6e 20 42 43 44 20  |e number in BCD |
00005180  66 6f 72 6d 61 74 2e 20  20 26 33 46 45 20 0d 63  |format.  &3FE .c|
00005190  6f 6e 74 61 69 6e 73 20  74 68 65 20 68 69 2d 62  |ontains the hi-b|
000051a0  79 74 65 20 61 6e 64 20  26 33 46 46 20 63 6f 6e  |yte and &3FF con|
000051b0  74 61 69 6e 73 20 74 68  65 20 6c 6f 2d 62 79 74  |tains the lo-byt|
000051c0  65 20 0d 20 0d 20 20 20  20 20 20 20 20 20 20 20  |e . .           |
000051d0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00005200  3d 3d 3d 3d 3d 3d 3d 3d  20 0d 20 0d 45 52 52 4f  |======== . .ERRO|
00005210  52 20 4e 55 4d 42 45 52  53 20 0d 20 0d 50 6f 73  |R NUMBERS . .Pos|
00005220  73 69 62 6c 65 20 65 72  72 6f 72 20 6e 75 6d 62  |sible error numb|
00005230  65 72 73 20 61 72 65 20  3a 20 0d 20 0d 31 20 20  |ers are : . .1  |
00005240  20 20 42 61 64 20 70 61  67 65 20 6e 75 6d 62 65  |  Bad page numbe|
00005250  72 20 0d 32 20 20 20 20  42 61 64 20 63 68 61 6e  |r .2    Bad chan|
00005260  6e 65 6c 20 0d 33 20 20  20 20 43 68 61 6e 6e 65  |nel .3    Channe|
00005270  6c 20 62 75 73 79 20 0d  34 20 20 20 20 54 69 6d  |l busy .4    Tim|
00005280  65 20 75 6e 61 76 61 69  6c 61 62 6c 65 20 0d 35  |e unavailable .5|
00005290  20 20 20 20 42 61 64 20  70 6f 72 74 20 0d 20 0d  |    Bad port . .|
000052a0  49 66 20 61 6e 20 65 72  72 6f 72 20 69 73 20 72  |If an error is r|
000052b0  65 63 65 69 76 65 64 20  74 68 65 6e 20 61 6e 20  |eceived then an |
000052c0  65 72 72 6f 72 20 6d 65  73 73 61 67 65 20 74 65  |error message te|
000052d0  72 6d 69 6e 61 74 65 64  20 62 79 20 61 20 63 61  |rminated by a ca|
000052e0  72 72 69 61 67 65 20 20  72 65 74 75 72 6e 20 0d  |rriage  return .|
000052f0  77 69 6c 6c 20 62 65 20  72 65 74 75 72 6e 65 64  |will be returned|
00005300  20 69 6e 20 64 61 74 61  2b 31 2e 20 0d 20 0d 54  | in data+1. . .T|
00005310  68 65 20 53 45 52 56 45  52 27 73 20 72 65 63 65  |he SERVER's rece|
00005320  69 76 65 20 62 75 66 66  65 72 20 69 73 20 26 35  |ive buffer is &5|
00005330  30 20 62 79 74 65 73 2e  20 0d 20 0d 54 68 65 20  |0 bytes. . .The |
00005340  20 53 45 52 56 45 52 20  20 74 72 61 6e 73 6d 69  | SERVER  transmi|
00005350  74 73 20 20 61 20 20 62  6c 6f 63 6b 20 6f 66 20  |ts  a  block of |
00005360  26 34 30 30 20 62 79 74  65 73 20 6f 6e 20 70 6f  |&400 bytes on po|
00005370  72 74 20 26 42 33 20 77  68 65 6e 20 74 72 61 6e  |rt &B3 when tran|
00005380  73 6d 69 74 74 69 6e 67  20 61 20 0d 70 61 67 65  |smitting a .page|
00005390  2e 20 49 74 20 74 72 61  6e 73 6d 69 74 73 20 61  |. It transmits a|
000053a0  20 62 6c 6f 63 6b 20 6f  66 20 26 32 30 20 62 79  | block of &20 by|
000053b0  74 65 73 20 69 6e 20 61  6c 6c 20 6f 74 68 65 72  |tes in all other|
000053c0  20 63 61 73 65 73 2e 20  0d 20 0d 20 20 20 20 20  | cases. . .     |
000053d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000053e0  20 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |  --------------|
000053f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00005400  2d 20 0d 0d 4c 6f 67 67  69 6e 67 20 6f 6e 20 74  |- ..Logging on t|
00005410  6f 20 74 68 65 20 73 65  72 76 65 72 20 0d 20 0d  |o the server . .|
00005420  43 6c 69 65 6e 74 20 74  6f 20 53 65 72 76 65 72  |Client to Server|
00005430  20 0d 20 0d 70 6f 72 74  20 20 20 20 20 20 20 20  | . .port        |
00005440  20 20 20 20 20 20 20 26  42 30 20 0d 20 0d 63 6f  |       &B0 . .co|
00005450  6e 74 72 6f 6c 20 62 79  74 65 20 20 20 20 20 20  |ntrol byte      |
00005460  20 26 38 30 20 0d 20 0d  44 61 74 61 20 20 20 20  | &80 . .Data    |
00005470  20 20 20 20 20 20 20 20  20 20 20 54 68 65 20 73  |           The s|
00005480  74 72 69 6e 67 20 54 45  4c 45 54 45 58 54 20 61  |tring TELETEXT a|
00005490  73 20 73 74 61 6e 64 61  72 64 20 41 53 43 49 49  |s standard ASCII|
000054a0  20 28 74 68 65 20 73 65  72 76 65 72 20 74 79 70  | (the server typ|
000054b0  65 29 20 0d 20 0d 53 65  72 76 65 72 20 74 6f 20  |e) . .Server to |
000054c0  43 6c 69 65 6e 74 20 0d  20 0d 70 6f 72 74 20 20  |Client . .port  |
000054d0  20 20 20 20 20 20 20 20  20 20 20 20 20 26 42 31  |             &B1|
000054e0  20 0d 20 0d 63 6f 6e 74  72 6f 6c 20 62 79 74 65  | . .control byte|
000054f0  20 20 20 20 20 20 20 26  38 30 20 0d 20 0d 44 61  |       &80 . .Da|
00005500  74 61 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |ta              |
00005510  20 30 20 6f 72 20 65 72  72 6f 72 20 6e 75 6d 62  | 0 or error numb|
00005520  65 72 20 0d 44 61 74 61  2b 31 20 20 20 20 20 20  |er .Data+1      |
00005530  20 20 20 20 20 20 20 62  61 73 65 20 70 6f 72 74  |       base port|
00005540  20 6e 75 6d 62 65 72 20  66 6f 72 20 66 75 72 74  | number for furt|
00005550  68 65 72 20 65 78 63 68  61 6e 67 65 73 20 0d 44  |her exchanges .D|
00005560  61 74 61 2b 32 20 20 20  20 20 20 20 20 20 20 20  |ata+2           |
00005570  20 20 62 69 6e 61 72 79  20 76 65 72 69 73 6f 6e  |  binary verison|
00005580  20 6e 75 6d 62 65 72 20  6f 66 20 74 68 65 20 73  | number of the s|
00005590  65 72 76 65 72 20 73 6f  66 74 77 61 72 65 20 0d  |erver software .|
000055a0  44 61 74 61 2b 33 20 20  20 20 20 20 20 20 20 20  |Data+3          |
000055b0  20 20 20 53 65 72 76 65  72 20 74 79 70 65 20 28  |   Server type (|
000055c0  38 20 63 68 61 72 73 2c  20 66 6f 72 6d 61 74 20  |8 chars, format |
000055d0  61 73 20 66 6f 72 20 43  6c 69 65 6e 74 20 74 6f  |as for Client to|
000055e0  20 53 65 72 76 65 72 29  20 0d 44 61 74 61 2b 31  | Server) .Data+1|
000055f0  31 20 20 20 20 20 20 20  20 20 20 20 20 4c 65 6e  |1            Len|
00005600  67 74 68 20 6f 66 20 73  65 72 76 65 72 20 6e 61  |gth of server na|
00005610  6d 65 20 28 3d 30 20 69  66 20 6e 6f 74 20 70 72  |me (=0 if not pr|
00005620  65 73 65 6e 74 29 20 0d  44 61 74 61 2b 31 32 20  |esent) .Data+12 |
00005630  20 20 20 20 20 20 20 20  20 20 20 53 65 72 76 65  |           Serve|
00005640  72 20 6e 61 6d 65 20 28  6f 70 74 69 6f 6e 61 6c  |r name (optional|
00005650  29 20 0d 44 61 74 61 2b  31 32 2b 4e 61 6d 65 4c  |) .Data+12+NameL|
00005660  65 6e 20 20 20 20 53 65  72 76 65 72 20 74 79 70  |en    Server typ|
00005670  65 20 64 65 70 65 6e 64  61 6e 74 20 4f 52 20 65  |e dependant OR e|
00005680  72 72 6f 72 20 73 74 72  69 6e 67 20 20 0d 20 0d  |rror string  . .|
00005690  20 0d 54 68 65 20 20 6c  65 6e 67 74 68 20 20 6f  | .The  length  o|
000056a0  66 20 20 74 68 65 20 72  65 63 65 69 76 65 20 62  |f  the receive b|
000056b0  6c 6f 63 6b 20 62 75 66  66 65 72 20 6e 65 65 64  |lock buffer need|
000056c0  65 64 20 74 6f 20 72 65  63 65 69 76 65 20 74 68  |ed to receive th|
000056d0  69 73 20 72 65 73 70 6f  6e 73 65 20 66 72 6f 6d  |is response from|
000056e0  20 0d 74 68 65 20 73 65  72 76 65 72 20 77 69 6c  | .the server wil|
000056f0  6c 20 6e 6f 74 20 65 78  63 65 65 64 20 26 32 30  |l not exceed &20|
00005700  20 62 79 74 65 73 2e 20  0d                       | bytes. .|
00005709
27-01-89/TFSinfo.m0
27-01-89/TFSinfo.m1
27-01-89/TFSinfo.m2
27-01-89/TFSinfo.m4
27-01-89/TFSinfo.m5