Home » CEEFAX disks » telesoftware16.adl » Speller/M/BRK

Speller/M/BRK

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 » telesoftware16.adl
Filename: Speller/M/BRK
Read OK:
File size: 06FC bytes
Load address: FFFF1900
Exec address: FFFF8023
File contents
   10REM Watcher Spelling Checker
   20REM Error control for menu 7/8/87
   30REM (C) Allan Kelly
   40 
   50DIM data% 32
   60oswrch=&FFEE
   70osnewl=&FFE7
   80osfind=&FFCE
   90osbyte=&FFF4
  100osrdch=&FFE0
  110PRINT"Assumes Menu code starts at &3100"
  120menu=&3100
  130FOR pass=0 TO 2 STEP 2
  140P%=&3000
  150[
  160OPT pass
  170.get_vector LDA&202
  180STA old_vec
  190LDA&203
  200STA old_vec+1
  210SEI
  220LDA#new_vec MOD 256
  230STA&202
  240LDA#new_vec DIV 256
  250STA&203
  260CLI
  270JMP menu
  280 
  290.old_vec EQUW 0
  300 
  310.new_vec JSR osnewl
  320JSR osnewl
  330LDY#0
  340LDX#error MOD 256
  350LDY#error DIV 256
  360JSR display
  370LDY#0
  380LDA(&FD),Y
  390LSR A
  400LSR A
  410LSR A
  420LSR A
  430CLC
  440ADC#48
  450CMP#58
  460BCC nvfo1
  470ADC#6
  480.nvfo1 JSR oswrch
  490 
  500LDA(&FD),Y
  510AND#&F
  520CLC
  530ADC#48
  540CMP#58
  550BCC nvfo2
  560ADC#6
  570.nvfo2 JSR oswrch
  580 
  590JSR osnewl
  600LDA&FD
  610CLC
  620ADC#1
  630TAX
  640LDA&FE
  650ADC#0
  660TAY
  670JSR display
  680JSR osnewl
  690 
  700LDA#0 \ Close files
  710LDY#0
  720JSR osfind
  730 
  740LDX#next MOD 256
  750LDY#next DIV 256
  760JSR display
  770 
  780LDA#21
  790LDX#0
  800JSR osbyte
  810 
  820.next_back JSR osrdch
  830CMP#ASC"M"
  840BEQ goto_menu
  850CMP#ASC"A"
  860BNE next_back
  870 
  880JMP(&FFFC)
  890 
  900.goto_menu JMP menu
  910 
  920.display STX&70
  930STY&71
  940LDY#0
  950.dback LDA(&70),Y
  960JSR oswrch
  970INY
  980CMP#0
  990BNE dback
 1000RTS
 1010.error EQUS "Error:"
 1020BRK
 1030 
 1040.next EQUW&D0A
 1050EQUW&D0A
 1060EQUS"What now?"
 1070EQUW&D0A
 1080EQUS"  M - Return to Menu"
 1090EQUW&D0A
 1100EQUS"  A - Abort program"
 1110BRK
 1120]
 1130NEXT
 1140PRINT"Saving Error code"
 1150IF FNos_save("L.BRK",&3000,&3000,&3000,&30FF)
 1160END
 1170DEFFNos_save(file$,load%,exec%,start%,end%)
 1180A%=0
 1190X%=data% MOD 256
 1200Y%=data% DIV 256
 1210!data%=data%+18
 1220!(data%+2)=load%
 1230!(data%+6)=exec%
 1240!(data%+10)=start%
 1250!(data%+14)=end%
 1260$(data%+18)=file$
 1270:=USR&FFDD AND&3

� Watcher Spelling Checker
#� Error control for menu 7/8/87
� (C) Allan Kelly
( 
2� data% 32
<oswrch=&FFEE
Fosnewl=&FFE7
Posfind=&FFCE
Zosbyte=&FFF4
dosrdch=&FFE0
n(�"Assumes Menu code starts at &3100"
xmenu=&3100
�� pass=0 � 2 � 2
�P%=&3000
�[
�OPT pass
�.get_vector LDA&202
�STA old_vec
�LDA&203
�STA old_vec+1
�SEI
�LDA#new_vec � 256
�STA&202
�LDA#new_vec � 256
�STA&203
CLI
JMP menu
 
".old_vec EQUW 0
, 
6.new_vec JSR osnewl
@JSR osnewl
J	LDY#0
TLDX#error � 256
^LDY#error � 256
hJSR display
r	LDY#0
|LDA(&FD),Y
�	LSR A
�	LSR A
�	LSR A
�	LSR A
�CLC
�
ADC#48
�
CMP#58
�
BCC nvfo1
�	ADC#6
�.nvfo1 JSR oswrch
� 
�LDA(&FD),Y
��#&F
CLC

ADC#48

CMP#58
&
BCC nvfo2
0	ADC#6
:.nvfo2 JSR oswrch
D 
NJSR osnewl
X
LDA&FD
bCLC
l	ADC#1
vTAX
�
LDA&FE
�	ADC#0
�TAY
�JSR display
�JSR osnewl
� 
�LDA#0 \ Close files
�	LDY#0
�JSR osfind
� 
�LDX#next � 256
�LDY#next � 256
�JSR display
 

LDA#21
	LDX#0
 JSR osbyte
* 
4.next_back JSR osrdch
>CMP#�"M"
HBEQ goto_menu
RCMP#�"A"
\BNE next_back
f 
pJMP(&FFFC)
z 
�.goto_menu JMP menu
� 
�.display STX&70
�
STY&71
�	LDY#0
�.dback LDA(&70),Y
�JSR oswrch
�INY
�	CMP#0
�
BNE dback
�RTS
�.error EQUS "Error:"
�BRK
 
.next EQUW&D0A
EQUW&D0A
$EQUS"What now?"
.EQUW&D0A
8EQUS"  M - Return to Menu"
BEQUW&D0A
LEQUS"  A - Abort program"
VBRK
`]
j�
t�"Saving Error code"
~/� �os_save("L.BRK",&3000,&3000,&3000,&30FF)
��
�,ݤos_save(file$,load%,exec%,start%,end%)
�A%=0
�X%=data% � 256
�Y%=data% � 256
�!data%=data%+18
�!(data%+2)=load%
�!(data%+6)=exec%
�!(data%+10)=start%
�!(data%+14)=end%
�$(data%+18)=file$
�:=�&FFDD �&3
�
00000000  0d 00 0a 1e f4 20 57 61  74 63 68 65 72 20 53 70  |..... Watcher Sp|
00000010  65 6c 6c 69 6e 67 20 43  68 65 63 6b 65 72 0d 00  |elling Checker..|
00000020  14 23 f4 20 45 72 72 6f  72 20 63 6f 6e 74 72 6f  |.#. Error contro|
00000030  6c 20 66 6f 72 20 6d 65  6e 75 20 37 2f 38 2f 38  |l for menu 7/8/8|
00000040  37 0d 00 1e 15 f4 20 28  43 29 20 41 6c 6c 61 6e  |7..... (C) Allan|
00000050  20 4b 65 6c 6c 79 0d 00  28 05 20 0d 00 32 0e de  | Kelly..(. ..2..|
00000060  20 64 61 74 61 25 20 33  32 0d 00 3c 10 6f 73 77  | data% 32..<.osw|
00000070  72 63 68 3d 26 46 46 45  45 0d 00 46 10 6f 73 6e  |rch=&FFEE..F.osn|
00000080  65 77 6c 3d 26 46 46 45  37 0d 00 50 10 6f 73 66  |ewl=&FFE7..P.osf|
00000090  69 6e 64 3d 26 46 46 43  45 0d 00 5a 10 6f 73 62  |ind=&FFCE..Z.osb|
000000a0  79 74 65 3d 26 46 46 46  34 0d 00 64 10 6f 73 72  |yte=&FFF4..d.osr|
000000b0  64 63 68 3d 26 46 46 45  30 0d 00 6e 28 f1 22 41  |dch=&FFE0..n(."A|
000000c0  73 73 75 6d 65 73 20 4d  65 6e 75 20 63 6f 64 65  |ssumes Menu code|
000000d0  20 73 74 61 72 74 73 20  61 74 20 26 33 31 30 30  | starts at &3100|
000000e0  22 0d 00 78 0e 6d 65 6e  75 3d 26 33 31 30 30 0d  |"..x.menu=&3100.|
000000f0  00 82 14 e3 20 70 61 73  73 3d 30 20 b8 20 32 20  |.... pass=0 . 2 |
00000100  88 20 32 0d 00 8c 0c 50  25 3d 26 33 30 30 30 0d  |. 2....P%=&3000.|
00000110  00 96 05 5b 0d 00 a0 0c  4f 50 54 20 70 61 73 73  |...[....OPT pass|
00000120  0d 00 aa 17 2e 67 65 74  5f 76 65 63 74 6f 72 20  |.....get_vector |
00000130  4c 44 41 26 32 30 32 0d  00 b4 0f 53 54 41 20 6f  |LDA&202....STA o|
00000140  6c 64 5f 76 65 63 0d 00  be 0b 4c 44 41 26 32 30  |ld_vec....LDA&20|
00000150  33 0d 00 c8 11 53 54 41  20 6f 6c 64 5f 76 65 63  |3....STA old_vec|
00000160  2b 31 0d 00 d2 07 53 45  49 0d 00 dc 15 4c 44 41  |+1....SEI....LDA|
00000170  23 6e 65 77 5f 76 65 63  20 83 20 32 35 36 0d 00  |#new_vec . 256..|
00000180  e6 0b 53 54 41 26 32 30  32 0d 00 f0 15 4c 44 41  |..STA&202....LDA|
00000190  23 6e 65 77 5f 76 65 63  20 81 20 32 35 36 0d 00  |#new_vec . 256..|
000001a0  fa 0b 53 54 41 26 32 30  33 0d 01 04 07 43 4c 49  |..STA&203....CLI|
000001b0  0d 01 0e 0c 4a 4d 50 20  6d 65 6e 75 0d 01 18 05  |....JMP menu....|
000001c0  20 0d 01 22 13 2e 6f 6c  64 5f 76 65 63 20 45 51  | .."..old_vec EQ|
000001d0  55 57 20 30 0d 01 2c 05  20 0d 01 36 17 2e 6e 65  |UW 0..,. ..6..ne|
000001e0  77 5f 76 65 63 20 4a 53  52 20 6f 73 6e 65 77 6c  |w_vec JSR osnewl|
000001f0  0d 01 40 0e 4a 53 52 20  6f 73 6e 65 77 6c 0d 01  |..@.JSR osnewl..|
00000200  4a 09 4c 44 59 23 30 0d  01 54 13 4c 44 58 23 65  |J.LDY#0..T.LDX#e|
00000210  72 72 6f 72 20 83 20 32  35 36 0d 01 5e 13 4c 44  |rror . 256..^.LD|
00000220  59 23 65 72 72 6f 72 20  81 20 32 35 36 0d 01 68  |Y#error . 256..h|
00000230  0f 4a 53 52 20 64 69 73  70 6c 61 79 0d 01 72 09  |.JSR display..r.|
00000240  4c 44 59 23 30 0d 01 7c  0e 4c 44 41 28 26 46 44  |LDY#0..|.LDA(&FD|
00000250  29 2c 59 0d 01 86 09 4c  53 52 20 41 0d 01 90 09  |),Y....LSR A....|
00000260  4c 53 52 20 41 0d 01 9a  09 4c 53 52 20 41 0d 01  |LSR A....LSR A..|
00000270  a4 09 4c 53 52 20 41 0d  01 ae 07 43 4c 43 0d 01  |..LSR A....CLC..|
00000280  b8 0a 41 44 43 23 34 38  0d 01 c2 0a 43 4d 50 23  |..ADC#48....CMP#|
00000290  35 38 0d 01 cc 0d 42 43  43 20 6e 76 66 6f 31 0d  |58....BCC nvfo1.|
000002a0  01 d6 09 41 44 43 23 36  0d 01 e0 15 2e 6e 76 66  |...ADC#6.....nvf|
000002b0  6f 31 20 4a 53 52 20 6f  73 77 72 63 68 0d 01 ea  |o1 JSR oswrch...|
000002c0  05 20 0d 01 f4 0e 4c 44  41 28 26 46 44 29 2c 59  |. ....LDA(&FD),Y|
000002d0  0d 01 fe 08 80 23 26 46  0d 02 08 07 43 4c 43 0d  |.....#&F....CLC.|
000002e0  02 12 0a 41 44 43 23 34  38 0d 02 1c 0a 43 4d 50  |...ADC#48....CMP|
000002f0  23 35 38 0d 02 26 0d 42  43 43 20 6e 76 66 6f 32  |#58..&.BCC nvfo2|
00000300  0d 02 30 09 41 44 43 23  36 0d 02 3a 15 2e 6e 76  |..0.ADC#6..:..nv|
00000310  66 6f 32 20 4a 53 52 20  6f 73 77 72 63 68 0d 02  |fo2 JSR oswrch..|
00000320  44 05 20 0d 02 4e 0e 4a  53 52 20 6f 73 6e 65 77  |D. ..N.JSR osnew|
00000330  6c 0d 02 58 0a 4c 44 41  26 46 44 0d 02 62 07 43  |l..X.LDA&FD..b.C|
00000340  4c 43 0d 02 6c 09 41 44  43 23 31 0d 02 76 07 54  |LC..l.ADC#1..v.T|
00000350  41 58 0d 02 80 0a 4c 44  41 26 46 45 0d 02 8a 09  |AX....LDA&FE....|
00000360  41 44 43 23 30 0d 02 94  07 54 41 59 0d 02 9e 0f  |ADC#0....TAY....|
00000370  4a 53 52 20 64 69 73 70  6c 61 79 0d 02 a8 0e 4a  |JSR display....J|
00000380  53 52 20 6f 73 6e 65 77  6c 0d 02 b2 05 20 0d 02  |SR osnewl.... ..|
00000390  bc 17 4c 44 41 23 30 20  5c 20 43 6c 6f 73 65 20  |..LDA#0 \ Close |
000003a0  66 69 6c 65 73 0d 02 c6  09 4c 44 59 23 30 0d 02  |files....LDY#0..|
000003b0  d0 0e 4a 53 52 20 6f 73  66 69 6e 64 0d 02 da 05  |..JSR osfind....|
000003c0  20 0d 02 e4 12 4c 44 58  23 6e 65 78 74 20 83 20  | ....LDX#next . |
000003d0  32 35 36 0d 02 ee 12 4c  44 59 23 6e 65 78 74 20  |256....LDY#next |
000003e0  81 20 32 35 36 0d 02 f8  0f 4a 53 52 20 64 69 73  |. 256....JSR dis|
000003f0  70 6c 61 79 0d 03 02 05  20 0d 03 0c 0a 4c 44 41  |play.... ....LDA|
00000400  23 32 31 0d 03 16 09 4c  44 58 23 30 0d 03 20 0e  |#21....LDX#0.. .|
00000410  4a 53 52 20 6f 73 62 79  74 65 0d 03 2a 05 20 0d  |JSR osbyte..*. .|
00000420  03 34 19 2e 6e 65 78 74  5f 62 61 63 6b 20 4a 53  |.4..next_back JS|
00000430  52 20 6f 73 72 64 63 68  0d 03 3e 0c 43 4d 50 23  |R osrdch..>.CMP#|
00000440  97 22 4d 22 0d 03 48 11  42 45 51 20 67 6f 74 6f  |."M"..H.BEQ goto|
00000450  5f 6d 65 6e 75 0d 03 52  0c 43 4d 50 23 97 22 41  |_menu..R.CMP#."A|
00000460  22 0d 03 5c 11 42 4e 45  20 6e 65 78 74 5f 62 61  |"..\.BNE next_ba|
00000470  63 6b 0d 03 66 05 20 0d  03 70 0e 4a 4d 50 28 26  |ck..f. ..p.JMP(&|
00000480  46 46 46 43 29 0d 03 7a  05 20 0d 03 84 17 2e 67  |FFFC)..z. .....g|
00000490  6f 74 6f 5f 6d 65 6e 75  20 4a 4d 50 20 6d 65 6e  |oto_menu JMP men|
000004a0  75 0d 03 8e 05 20 0d 03  98 13 2e 64 69 73 70 6c  |u.... .....displ|
000004b0  61 79 20 53 54 58 26 37  30 0d 03 a2 0a 53 54 59  |ay STX&70....STY|
000004c0  26 37 31 0d 03 ac 09 4c  44 59 23 30 0d 03 b6 15  |&71....LDY#0....|
000004d0  2e 64 62 61 63 6b 20 4c  44 41 28 26 37 30 29 2c  |.dback LDA(&70),|
000004e0  59 0d 03 c0 0e 4a 53 52  20 6f 73 77 72 63 68 0d  |Y....JSR oswrch.|
000004f0  03 ca 07 49 4e 59 0d 03  d4 09 43 4d 50 23 30 0d  |...INY....CMP#0.|
00000500  03 de 0d 42 4e 45 20 64  62 61 63 6b 0d 03 e8 07  |...BNE dback....|
00000510  52 54 53 0d 03 f2 18 2e  65 72 72 6f 72 20 45 51  |RTS.....error EQ|
00000520  55 53 20 22 45 72 72 6f  72 3a 22 0d 03 fc 07 42  |US "Error:"....B|
00000530  52 4b 0d 04 06 05 20 0d  04 10 12 2e 6e 65 78 74  |RK.... .....next|
00000540  20 45 51 55 57 26 44 30  41 0d 04 1a 0c 45 51 55  | EQUW&D0A....EQU|
00000550  57 26 44 30 41 0d 04 24  13 45 51 55 53 22 57 68  |W&D0A..$.EQUS"Wh|
00000560  61 74 20 6e 6f 77 3f 22  0d 04 2e 0c 45 51 55 57  |at now?"....EQUW|
00000570  26 44 30 41 0d 04 38 1e  45 51 55 53 22 20 20 4d  |&D0A..8.EQUS"  M|
00000580  20 2d 20 52 65 74 75 72  6e 20 74 6f 20 4d 65 6e  | - Return to Men|
00000590  75 22 0d 04 42 0c 45 51  55 57 26 44 30 41 0d 04  |u"..B.EQUW&D0A..|
000005a0  4c 1d 45 51 55 53 22 20  20 41 20 2d 20 41 62 6f  |L.EQUS"  A - Abo|
000005b0  72 74 20 70 72 6f 67 72  61 6d 22 0d 04 56 07 42  |rt program"..V.B|
000005c0  52 4b 0d 04 60 05 5d 0d  04 6a 05 ed 0d 04 74 18  |RK..`.]..j....t.|
000005d0  f1 22 53 61 76 69 6e 67  20 45 72 72 6f 72 20 63  |."Saving Error c|
000005e0  6f 64 65 22 0d 04 7e 2f  e7 20 a4 6f 73 5f 73 61  |ode"..~/. .os_sa|
000005f0  76 65 28 22 4c 2e 42 52  4b 22 2c 26 33 30 30 30  |ve("L.BRK",&3000|
00000600  2c 26 33 30 30 30 2c 26  33 30 30 30 2c 26 33 30  |,&3000,&3000,&30|
00000610  46 46 29 0d 04 88 05 e0  0d 04 92 2c dd a4 6f 73  |FF)........,..os|
00000620  5f 73 61 76 65 28 66 69  6c 65 24 2c 6c 6f 61 64  |_save(file$,load|
00000630  25 2c 65 78 65 63 25 2c  73 74 61 72 74 25 2c 65  |%,exec%,start%,e|
00000640  6e 64 25 29 0d 04 9c 08  41 25 3d 30 0d 04 a6 12  |nd%)....A%=0....|
00000650  58 25 3d 64 61 74 61 25  20 83 20 32 35 36 0d 04  |X%=data% . 256..|
00000660  b0 12 59 25 3d 64 61 74  61 25 20 81 20 32 35 36  |..Y%=data% . 256|
00000670  0d 04 ba 13 21 64 61 74  61 25 3d 64 61 74 61 25  |....!data%=data%|
00000680  2b 31 38 0d 04 c4 14 21  28 64 61 74 61 25 2b 32  |+18....!(data%+2|
00000690  29 3d 6c 6f 61 64 25 0d  04 ce 14 21 28 64 61 74  |)=load%....!(dat|
000006a0  61 25 2b 36 29 3d 65 78  65 63 25 0d 04 d8 16 21  |a%+6)=exec%....!|
000006b0  28 64 61 74 61 25 2b 31  30 29 3d 73 74 61 72 74  |(data%+10)=start|
000006c0  25 0d 04 e2 14 21 28 64  61 74 61 25 2b 31 34 29  |%....!(data%+14)|
000006d0  3d 65 6e 64 25 0d 04 ec  15 24 28 64 61 74 61 25  |=end%....$(data%|
000006e0  2b 31 38 29 3d 66 69 6c  65 24 0d 04 f6 10 3a 3d  |+18)=file$....:=|
000006f0  ba 26 46 46 44 44 20 80  26 33 0d ff              |.&FFDD .&3..|
000006fc
Speller/M/BRK.m0
Speller/M/BRK.m1
Speller/M/BRK.m2
Speller/M/BRK.m4
Speller/M/BRK.m5