Home » CEEFAX disks » telesoftware2.adl » ATS/B\ATS08

ATS/B\ATS08

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

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

Tape/disk: Home » CEEFAX disks » telesoftware2.adl
Filename: ATS/B\ATS08
Read OK:
File size: 0767 bytes
Load address: 1A00
Exec address: 801F
File contents
   10REM"�ATS08
   20REM"�*****************************
   30REM"�*�ATS�Routine to capture   �*
   40REM"�*�Teletext page, and check �*
   50REM"�*�if it is an update to a  �*
   60REM"�*�previously transmitted   �*
   70REM"�*�page.                    �*
   80REM"�*****************************
   90REM"�*�(C)�J.J.Brayshaw�SEP 1986�*
  100REM"�*****************************
  110REM"�*�Lines following�GREEN�REM�*
  120REM"�*�statements to be adjusted�*
  130REM"�*�as required.             �*
  140REM"�*�REM's in�YELLOW�for info.�*
  150REM"�*�only.                    �*
  160REM"�*****************************
  170REM"�*�The procedure required is�*
  180REM"�*�FNupdate (first byte of  �*
  190REM"�*�page store).�The rest of �*
  200REM"�*�the program is a         �*
  210REM"�*�demonstration only.      �*
  220REM"�*****************************
  230:
  240:
  250:
  260REM"�Invoke demo routines:
  270MODE7
  280ONERRORGOTO350
  290PROCset_variables
  300PROCoscli("DATA "+STR$~(start%))
  310PROCoscli("DISPLAY "+STR$~(start%))
  320PROCcheck_CRC
  330PRINTTAB(20,24)"Update: ";:IF FNupdate(start%)=TRUE PRINT"Yes."; ELSE PRINT"No.";
  340GOTO300
  350*HOFF
  360END
  370:
  380:
  390:
  400REM"�***�Set up variables�***
  410DEFPROCset_variables
  420REM"�Start address for page store:
  430start%=&6000
  440REM"�Set Channel & page no.:
  450*TTXON
  460*BBC1
  470*PAGE196
  480*HON
  490ENDPROC
  500:
  510:
  520:
  530REM"�***�OSCLI SIMULATION�***
  540DEFPROCoscli(command$)
  550DIM line% 20
  560$line%=command$
  570X%=line% MOD256:Y%=line% DIV256
  580CALL&FFF7
  590ENDPROC
  600:
  610:
  620:
  630REM"�***�Check CRC�***
  640DEFPROCcheck_CRC
  650A%=&7A
  660DIM line% 4
  670X%=line% MOD256:Y%=line% DIV256
  680line%?0=23
  690line%?1=(start%) MOD256
  700line%?2=(start%) DIV256
  710CALL&FFF1
  720answer%=line%?3
  730IF answer%=&FF PRINTTAB(0,24)CHR$129;"CRC ERROR�";
  740IF answer%=&0 PRINTTAB(0,24)CHR$131;"No CRC Sent�";
  750IF answer%=&1 PRINTTAB(0,24)CHR$136;"CRC Correct";CHR$137;
  760ENDPROC
  770:
  780:
  790REM"�***�Update indicator�***
  800DEFFNupdate(page_start%)
  810check_row%=page_start%?1
  820IFcheck_row%<>0 ="Row zero not found"
  830control%=page_start%?6
  840update%=control% AND2
  850IF update%=2 =TRUE
  860=FALSE

�"�ATS08
$�"�*****************************
$�"�*�ATS�Routine to capture   �*
($�"�*�Teletext page, and check �*
2$�"�*�if it is an update to a  �*
<$�"�*�previously transmitted   �*
F$�"�*�page.                    �*
P$�"�*****************************
Z$�"�*�(C)�J.J.Brayshaw�SEP 1986�*
d$�"�*****************************
n$�"�*�Lines following�GREEN�REM�*
x$�"�*�statements to be adjusted�*
�$�"�*�as required.             �*
�$�"�*�REM's in�YELLOW�for info.�*
�$�"�*�only.                    �*
�$�"�*****************************
�$�"�*�The procedure required is�*
�$�"�*�FNupdate (first byte of  �*
�$�"�*�page store).�The rest of �*
�$�"�*�the program is a         �*
�$�"�*�demonstration only.      �*
�$�"�*****************************
�:
�:
�:
�"�Invoke demo routines:
�7
��D^A
"�set_variables
,�oscli("DATA "+�~(start%))
6!�oscli("DISPLAY "+�~(start%))
@�check_CRC
J>�20,24)"Update: ";:� �update(start%)=� �"Yes."; � �"No.";
T	�TlA
^	*HOFF
h�
r:
|:
�:
��"�***�Set up variables�***
���set_variables
�$�"�Start address for page store:
�start%=&6000
��"�Set Channel & page no.:
�
*TTXON
�	*BBC1
�*PAGE196
�*HON
��
�:
�:
:
�"�***�OSCLI SIMULATION�***
��oscli(command$)
&� line% 20
0$line%=command$
:X%=line% �256:Y%=line% �256
D
�&FFF7
N�
X:
b:
l:
v�"�***�Check CRC�***
���check_CRC
�
A%=&7A
�
� line% 4
�X%=line% �256:Y%=line% �256
�line%?0=23
�line%?1=(start%) �256
�line%?2=(start%) �256
�
�&FFF1
�answer%=line%?3
�+� answer%=&FF �0,24)�129;"CRC ERROR�";
�,� answer%=&0 �0,24)�131;"No CRC Sent�";
�0� answer%=&1 �0,24)�136;"CRC Correct";�137;
��
:
:
�"�***�Update indicator�***
 ݤupdate(page_start%)
*check_row%=page_start%?1
4(�check_row%<>0 ="Row zero not found"
>control%=page_start%?6
Hupdate%=control% �2
R� update%=2 =�
\=�
�
00000000  0d 00 0a 0c f4 22 85 41  54 53 30 38 0d 00 14 24  |.....".ATS08...$|
00000010  f4 22 81 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.".*************|
00000020  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00000030  0d 00 1e 24 f4 22 81 2a  86 41 54 53 83 52 6f 75  |...$.".*.ATS.Rou|
00000040  74 69 6e 65 20 74 6f 20  63 61 70 74 75 72 65 20  |tine to capture |
00000050  20 20 81 2a 0d 00 28 24  f4 22 81 2a 83 54 65 6c  |  .*..($.".*.Tel|
00000060  65 74 65 78 74 20 70 61  67 65 2c 20 61 6e 64 20  |etext page, and |
00000070  63 68 65 63 6b 20 81 2a  0d 00 32 24 f4 22 81 2a  |check .*..2$.".*|
00000080  83 69 66 20 69 74 20 69  73 20 61 6e 20 75 70 64  |.if it is an upd|
00000090  61 74 65 20 74 6f 20 61  20 20 81 2a 0d 00 3c 24  |ate to a  .*..<$|
000000a0  f4 22 81 2a 83 70 72 65  76 69 6f 75 73 6c 79 20  |.".*.previously |
000000b0  74 72 61 6e 73 6d 69 74  74 65 64 20 20 20 81 2a  |transmitted   .*|
000000c0  0d 00 46 24 f4 22 81 2a  83 70 61 67 65 2e 20 20  |..F$.".*.page.  |
000000d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000000e0  20 20 81 2a 0d 00 50 24  f4 22 81 2a 2a 2a 2a 2a  |  .*..P$.".*****|
000000f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00000100  2a 2a 2a 2a 2a 2a 2a 2a  0d 00 5a 24 f4 22 81 2a  |********..Z$.".*|
00000110  82 28 43 29 87 4a 2e 4a  2e 42 72 61 79 73 68 61  |.(C).J.J.Braysha|
00000120  77 85 53 45 50 20 31 39  38 36 81 2a 0d 00 64 24  |w.SEP 1986.*..d$|
00000130  f4 22 81 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.".*************|
00000140  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00000150  0d 00 6e 24 f4 22 81 2a  87 4c 69 6e 65 73 20 66  |..n$.".*.Lines f|
00000160  6f 6c 6c 6f 77 69 6e 67  82 47 52 45 45 4e 87 52  |ollowing.GREEN.R|
00000170  45 4d 81 2a 0d 00 78 24  f4 22 81 2a 87 73 74 61  |EM.*..x$.".*.sta|
00000180  74 65 6d 65 6e 74 73 20  74 6f 20 62 65 20 61 64  |tements to be ad|
00000190  6a 75 73 74 65 64 81 2a  0d 00 82 24 f4 22 81 2a  |justed.*...$.".*|
000001a0  87 61 73 20 72 65 71 75  69 72 65 64 2e 20 20 20  |.as required.   |
000001b0  20 20 20 20 20 20 20 20  20 20 81 2a 0d 00 8c 24  |          .*...$|
000001c0  f4 22 81 2a 87 52 45 4d  27 73 20 69 6e 83 59 45  |.".*.REM's in.YE|
000001d0  4c 4c 4f 57 87 66 6f 72  20 69 6e 66 6f 2e 81 2a  |LLOW.for info..*|
000001e0  0d 00 96 24 f4 22 81 2a  87 6f 6e 6c 79 2e 20 20  |...$.".*.only.  |
000001f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000200  20 20 81 2a 0d 00 a0 24  f4 22 81 2a 2a 2a 2a 2a  |  .*...$.".*****|
00000210  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00000220  2a 2a 2a 2a 2a 2a 2a 2a  0d 00 aa 24 f4 22 81 2a  |********...$.".*|
00000230  87 54 68 65 20 70 72 6f  63 65 64 75 72 65 20 72  |.The procedure r|
00000240  65 71 75 69 72 65 64 20  69 73 81 2a 0d 00 b4 24  |equired is.*...$|
00000250  f4 22 81 2a 85 46 4e 75  70 64 61 74 65 20 28 66  |.".*.FNupdate (f|
00000260  69 72 73 74 20 62 79 74  65 20 6f 66 20 20 81 2a  |irst byte of  .*|
00000270  0d 00 be 24 f4 22 81 2a  85 70 61 67 65 20 73 74  |...$.".*.page st|
00000280  6f 72 65 29 2e 87 54 68  65 20 72 65 73 74 20 6f  |ore)..The rest o|
00000290  66 20 81 2a 0d 00 c8 24  f4 22 81 2a 87 74 68 65  |f .*...$.".*.the|
000002a0  20 70 72 6f 67 72 61 6d  20 69 73 20 61 20 20 20  | program is a   |
000002b0  20 20 20 20 20 20 81 2a  0d 00 d2 24 f4 22 81 2a  |      .*...$.".*|
000002c0  87 64 65 6d 6f 6e 73 74  72 61 74 69 6f 6e 20 6f  |.demonstration o|
000002d0  6e 6c 79 2e 20 20 20 20  20 20 81 2a 0d 00 dc 24  |nly.      .*...$|
000002e0  f4 22 81 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.".*************|
000002f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
00000300  0d 00 e6 05 3a 0d 00 f0  05 3a 0d 00 fa 05 3a 0d  |....:....:....:.|
00000310  01 04 1c f4 22 83 49 6e  76 6f 6b 65 20 64 65 6d  |....".Invoke dem|
00000320  6f 20 72 6f 75 74 69 6e  65 73 3a 0d 01 0e 06 eb  |o routines:.....|
00000330  37 0d 01 18 0b ee 85 e5  8d 44 5e 41 0d 01 22 12  |7........D^A..".|
00000340  f2 73 65 74 5f 76 61 72  69 61 62 6c 65 73 0d 01  |.set_variables..|
00000350  2c 1e f2 6f 73 63 6c 69  28 22 44 41 54 41 20 22  |,..oscli("DATA "|
00000360  2b c3 7e 28 73 74 61 72  74 25 29 29 0d 01 36 21  |+.~(start%))..6!|
00000370  f2 6f 73 63 6c 69 28 22  44 49 53 50 4c 41 59 20  |.oscli("DISPLAY |
00000380  22 2b c3 7e 28 73 74 61  72 74 25 29 29 0d 01 40  |"+.~(start%))..@|
00000390  0e f2 63 68 65 63 6b 5f  43 52 43 0d 01 4a 3e f1  |..check_CRC..J>.|
000003a0  8a 32 30 2c 32 34 29 22  55 70 64 61 74 65 3a 20  |.20,24)"Update: |
000003b0  22 3b 3a e7 20 a4 75 70  64 61 74 65 28 73 74 61  |";:. .update(sta|
000003c0  72 74 25 29 3d b9 20 f1  22 59 65 73 2e 22 3b 20  |rt%)=. ."Yes."; |
000003d0  8b 20 f1 22 4e 6f 2e 22  3b 0d 01 54 09 e5 8d 54  |. ."No.";..T...T|
000003e0  6c 41 0d 01 5e 09 2a 48  4f 46 46 0d 01 68 05 e0  |lA..^.*HOFF..h..|
000003f0  0d 01 72 05 3a 0d 01 7c  05 3a 0d 01 86 05 3a 0d  |..r.:..|.:....:.|
00000400  01 90 1f f4 22 81 2a 2a  2a 86 53 65 74 20 75 70  |....".***.Set up|
00000410  20 76 61 72 69 61 62 6c  65 73 81 2a 2a 2a 0d 01  | variables.***..|
00000420  9a 13 dd f2 73 65 74 5f  76 61 72 69 61 62 6c 65  |....set_variable|
00000430  73 0d 01 a4 24 f4 22 82  53 74 61 72 74 20 61 64  |s...$.".Start ad|
00000440  64 72 65 73 73 20 66 6f  72 20 70 61 67 65 20 73  |dress for page s|
00000450  74 6f 72 65 3a 0d 01 ae  10 73 74 61 72 74 25 3d  |tore:....start%=|
00000460  26 36 30 30 30 0d 01 b8  1e f4 22 82 53 65 74 20  |&6000.....".Set |
00000470  43 68 61 6e 6e 65 6c 20  26 20 70 61 67 65 20 6e  |Channel & page n|
00000480  6f 2e 3a 0d 01 c2 0a 2a  54 54 58 4f 4e 0d 01 cc  |o.:....*TTXON...|
00000490  09 2a 42 42 43 31 0d 01  d6 0c 2a 50 41 47 45 31  |.*BBC1....*PAGE1|
000004a0  39 36 0d 01 e0 08 2a 48  4f 4e 0d 01 ea 05 e1 0d  |96....*HON......|
000004b0  01 f4 05 3a 0d 01 fe 05  3a 0d 02 08 05 3a 0d 02  |...:....:....:..|
000004c0  12 1f f4 22 81 2a 2a 2a  86 4f 53 43 4c 49 20 53  |...".***.OSCLI S|
000004d0  49 4d 55 4c 41 54 49 4f  4e 81 2a 2a 2a 0d 02 1c  |IMULATION.***...|
000004e0  15 dd f2 6f 73 63 6c 69  28 63 6f 6d 6d 61 6e 64  |...oscli(command|
000004f0  24 29 0d 02 26 0e de 20  6c 69 6e 65 25 20 32 30  |$)..&.. line% 20|
00000500  0d 02 30 13 24 6c 69 6e  65 25 3d 63 6f 6d 6d 61  |..0.$line%=comma|
00000510  6e 64 24 0d 02 3a 1f 58  25 3d 6c 69 6e 65 25 20  |nd$..:.X%=line% |
00000520  83 32 35 36 3a 59 25 3d  6c 69 6e 65 25 20 81 32  |.256:Y%=line% .2|
00000530  35 36 0d 02 44 0a d6 26  46 46 46 37 0d 02 4e 05  |56..D..&FFF7..N.|
00000540  e1 0d 02 58 05 3a 0d 02  62 05 3a 0d 02 6c 05 3a  |...X.:..b.:..l.:|
00000550  0d 02 76 18 f4 22 81 2a  2a 2a 86 43 68 65 63 6b  |..v..".***.Check|
00000560  20 43 52 43 81 2a 2a 2a  0d 02 80 0f dd f2 63 68  | CRC.***......ch|
00000570  65 63 6b 5f 43 52 43 0d  02 8a 0a 41 25 3d 26 37  |eck_CRC....A%=&7|
00000580  41 0d 02 94 0d de 20 6c  69 6e 65 25 20 34 0d 02  |A..... line% 4..|
00000590  9e 1f 58 25 3d 6c 69 6e  65 25 20 83 32 35 36 3a  |..X%=line% .256:|
000005a0  59 25 3d 6c 69 6e 65 25  20 81 32 35 36 0d 02 a8  |Y%=line% .256...|
000005b0  0e 6c 69 6e 65 25 3f 30  3d 32 33 0d 02 b2 19 6c  |.line%?0=23....l|
000005c0  69 6e 65 25 3f 31 3d 28  73 74 61 72 74 25 29 20  |ine%?1=(start%) |
000005d0  83 32 35 36 0d 02 bc 19  6c 69 6e 65 25 3f 32 3d  |.256....line%?2=|
000005e0  28 73 74 61 72 74 25 29  20 81 32 35 36 0d 02 c6  |(start%) .256...|
000005f0  0a d6 26 46 46 46 31 0d  02 d0 13 61 6e 73 77 65  |..&FFF1....answe|
00000600  72 25 3d 6c 69 6e 65 25  3f 33 0d 02 da 2b e7 20  |r%=line%?3...+. |
00000610  61 6e 73 77 65 72 25 3d  26 46 46 20 f1 8a 30 2c  |answer%=&FF ..0,|
00000620  32 34 29 bd 31 32 39 3b  22 43 52 43 20 45 52 52  |24).129;"CRC ERR|
00000630  4f 52 87 22 3b 0d 02 e4  2c e7 20 61 6e 73 77 65  |OR.";...,. answe|
00000640  72 25 3d 26 30 20 f1 8a  30 2c 32 34 29 bd 31 33  |r%=&0 ..0,24).13|
00000650  31 3b 22 4e 6f 20 43 52  43 20 53 65 6e 74 87 22  |1;"No CRC Sent."|
00000660  3b 0d 02 ee 30 e7 20 61  6e 73 77 65 72 25 3d 26  |;...0. answer%=&|
00000670  31 20 f1 8a 30 2c 32 34  29 bd 31 33 36 3b 22 43  |1 ..0,24).136;"C|
00000680  52 43 20 43 6f 72 72 65  63 74 22 3b bd 31 33 37  |RC Correct";.137|
00000690  3b 0d 02 f8 05 e1 0d 03  02 05 3a 0d 03 0c 05 3a  |;.........:....:|
000006a0  0d 03 16 1f f4 22 81 2a  2a 2a 86 55 70 64 61 74  |.....".***.Updat|
000006b0  65 20 69 6e 64 69 63 61  74 6f 72 81 2a 2a 2a 0d  |e indicator.***.|
000006c0  03 20 19 dd a4 75 70 64  61 74 65 28 70 61 67 65  |. ...update(page|
000006d0  5f 73 74 61 72 74 25 29  0d 03 2a 1c 63 68 65 63  |_start%)..*.chec|
000006e0  6b 5f 72 6f 77 25 3d 70  61 67 65 5f 73 74 61 72  |k_row%=page_star|
000006f0  74 25 3f 31 0d 03 34 28  e7 63 68 65 63 6b 5f 72  |t%?1..4(.check_r|
00000700  6f 77 25 3c 3e 30 20 3d  22 52 6f 77 20 7a 65 72  |ow%<>0 ="Row zer|
00000710  6f 20 6e 6f 74 20 66 6f  75 6e 64 22 0d 03 3e 1a  |o not found"..>.|
00000720  63 6f 6e 74 72 6f 6c 25  3d 70 61 67 65 5f 73 74  |control%=page_st|
00000730  61 72 74 25 3f 36 0d 03  48 17 75 70 64 61 74 65  |art%?6..H.update|
00000740  25 3d 63 6f 6e 74 72 6f  6c 25 20 80 32 0d 03 52  |%=control% .2..R|
00000750  12 e7 20 75 70 64 61 74  65 25 3d 32 20 3d b9 0d  |.. update%=2 =..|
00000760  03 5c 06 3d a3 0d ff                              |.\.=...|
00000767
ATS/B\ATS08.m0
ATS/B\ATS08.m1
ATS/B\ATS08.m2
ATS/B\ATS08.m4
ATS/B\ATS08.m5