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 RCMP#�"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" BEQUW&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