Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_16.ADF » PROGS/VEWCHK/VIEWCHECK

PROGS/VEWCHK/VIEWCHECK

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 » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_16.ADF
Filename: PROGS/VEWCHK/VIEWCHECK
Read OK:
File size: 0CE6 bytes
Load address: FFFF1D00
Exec address: FFFF8023
File contents
   10REM VIEW SPELL CHECKER (ANY SPOOLED FILE ACTUALLY)
   20REM ORIGINAL BY ROLAND WADDILOVE (C) eu 1987
   30REM TUNED UP BY CHRISTOPHER CHADWICK 1993
   40REM INCLUDES EXTRA PART WORDS TO TEST AND DROP
   50REM CHECKS A REPLACED WORD AGAINST THE DICTY, ADDS IF NOT FOUND
   60REM FIXED DICTIONARY NAME, MODE 4 ADDED COLOUR & WORD COUNT
   70ON ERROR PRINT':CLOSE#0:REPORT:PRINT" at line ";ERL:END
   80MODE4:HIMEM=TOP+&400:*FX16
   90PROCassemble:CLEAR
  100PROCinitialise
  110PROCopen
  120REPEAT
  130PROCget_word
  140IF w$<>"" PROCsearch
  150IF K%=ASC"r" PROCsearch
  160PROCwrite
  170TTL%=TTL%+1
  180UNTIL done
  190PROCclose
  200END
  210  
  220DEF PROCinitialise
  230ADD%=0
  240valid$="abcdefghijklmnopqrstuvwxyz'ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  250COLOUR0:COLOUR129:PRINTTAB(0,8)SPC40:PRINTTAB(0,9)SPC12"View Spell Check"SPC12:PRINTTAB(0,10)SPC40:COLOUR1:COLOUR128:VDU28,0,30,39,14
  260VDU19 0 4 0 0 0
  270$HIMEM="*":A%=0
  280PRINT"Loading your dictionary ..."
  290name$="DICTIONARY" 
  300OSCLI"LOAD "+name$+" "+STR$~HIMEM
  310ENDPROC
  320 
  330DEF PROCopen
  340INPUT'"File to check",cname$
  350chan1=OPENIN cname$
  360chan2=OPENOUT"TEXT"
  370done=FALSE:CLS
  380ENDPROC
  390 
  400DEF PROCget_word
  410w$=""
  420C%=BGET#chan1:IF EOF#chan1 done=TRUE:ENDPROC
  430IF INSTR(valid$,CHR$C%) ELSE BPUT #chan2,C%:GOTO 420
  440w$=w$+CHR$C%
  450C%=BGET#chan1:IF EOF#chan1 done=TRUE:ENDPROC
  460IF INSTR(valid$,CHR$C%) GOTO 440
  470ENDPROC
  480 
  490DEF PROCclose
  500CLOSE#0
  510CLS
  520PRINT"Of"TTL%" words checked,"
  530PRINT'"  "ADD%"  were new to me, PHEW!"
  540PRINT'"        Please wait ..."
  550P%=HIMEM-1
  560REPEAT P%=P%+1:UNTIL ?P%=ASC"*":*FX21
  570PRINT'"Saving a much bigger "+name$+" NOW!"
  580OSCLI"SAVE "+name$+" "+STR$~(HIMEM)+" "+STR$~(P%+5)
  590CLS
  600PRINT''''"         That's it, I'm finished!"
  610*FX18
  620ENDPROC
  630 
  640DEF PROCsearch
  650word$=w$
  660IF RIGHT$(w$,1)="'" w$=LEFT$(w$,LENw$-1)
  670IF RIGHT$(w$,1)="s" w$=LEFT$(w$,LENw$-1)
  680IF RIGHT$(w$,1)="'" w$=LEFT$(w$,LENw$-1) ELSE IF RIGHT$(w$,3)="n't" w$=LEFT$(w$,LENw$-3) ELSE IF RIGHT$(w$,2)="'d" w$=LEFT$(w$,LENw$-2) ELSE IF RIGHT$(w$,3)="'ve" w$=LEFT$(w$,LENw$-3)ELSE IF RIGHT$(w$,3)="'re" w$=LEFT$(w$,LENw$-3)
  690IF RIGHT$(w$,2)="ly" w$=LEFT$(w$,LENw$-2)
  700IF RIGHT$(w$,4)="tion" w$=LEFT$(w$,LENw$-4)
  710IF RIGHT$(w$,2)="ed" w$=LEFT$(w$,LENw$-2)
  720IF RIGHT$(w$,3)="ing" w$=LEFT$(w$,LENw$-3) ELSE IF RIGHT$(w$,2)="er" w$=LEFT$(w$,LENw$-2)
  730IF LEFT$(w$,1)="'" w$=RIGHT$(w$,LENw$-1)
  740IF LEFT$(w$,2)="un" w$=RIGHT$(w$,LENw$-2) ELSE IF LEFT$(w$,2)="de" w$=RIGHT$(w$,LENw$-2) ELSE IF LEFT$(w$,2)="in" w$=RIGHT$(w$,LENw$-2)
  750IF LENw$=0 ENDPROC
  760$&B00=w$:CALL &C00:IF A%=0 ENDPROC
  770CLS:PRINT'"(I)gnore  (R)eplace  (A)dd":COLOUR129:COLOUR0:PRINT'word$:COLOUR128:COLOUR1:K%=GET OR 32
  780IF K%=ASC"i" CLS:ENDPROC
  790IF K%=ASC"r" INPUT'"Replace with ",word$:w$=word$:CLS:ENDPROC
  800IF K%=ASC"a" ADD%=ADD%+1
  810IF P%>&7030 PRINT"Dictionary Full!":ENDPROC
  820$P%=$&B00+CHR$(13)+"*"
  830CLS
  840ENDPROC
  850 
  860DEF PROCwrite
  870FOR I%=1 TO LEN word$:BPUT#chan2,ASC(MID$(word$,I%,1)):NEXT
  880BPUT#chan2,C%
  890VDU46
  900ENDPROC
  910 
  920DEF PROCassemble
  930dict=&70:word=&B00:p%=&440
  940FOR I%=0 TO 2 STEP 2
  950P%=&C00
  960[OPT I%
  970SEI
  980LDX #0
  990.lc
 1000LDA word,X:AND #&DF:STA word,X  \upper case letters
 1010INX
 1020CMP #&0D:BNE lc
 1030.start
 1040LDA &06:STA dict:LDA &07:STA dict+1  \HIMEM=start of dictionary
 1050LDY #0
 1060.compare
 1070LDX #0
 1080LDA (dict),Y:CMP #ASC"*":BEQ no_match  \end of dictionary?
 1090.loop1
 1100LDA (dict),Y:CMP word,X:BNE next_word  \letters match?
 1110INX:INY
 1120CMP #&0D:BNE loop1  \end of word?
 1130LDA #0  \match found
 1140.no_match
 1150STA &404  \set A%
 1160LDA dict:STA p%:LDA dict+1:STA p%+1  \p% points to after last word tested
 1170CLI:RTS
 1180.next_word
 1190LDY #0
 1200LDA #&0D
 1210.loop2
 1220INC dict:BNE here:INC dict+1
 1230.here
 1240CMP (dict),Y:BNE loop2  \find CR
 1250INC dict:BNE compare:INC dict+1:BNE compare  \start next word
 1260]
 1270NEXT
 1280ENDPROC
 1290 REM COPY & RENUMBER THE FOLLOWING AS 280,285,290 TO CALL NAMED DICTIONARY
 1300 REM PRINT"LOAD DICTIONARY(Y/N)?";
 1310 REM IF (GET OR 32)<>ASC"y" ELSEPROC
 1320 REM INPUT'"File to check",name$

4� VIEW SPELL CHECKER (ANY SPOOLED FILE ACTUALLY)
.� ORIGINAL BY ROLAND WADDILOVE (C) eu 1987
+� TUNED UP BY CHRISTOPHER CHADWICK 1993
(0� INCLUDES EXTRA PART WORDS TO TEST AND DROP
2A� CHECKS A REPLACED WORD AGAINST THE DICTY, ADDS IF NOT FOUND
<=� FIXED DICTIONARY NAME, MODE 4 ADDED COLOUR & WORD COUNT
F!� � �':�#0:�:�" at line ";�:�
P�4:�=�P+&400:*FX16
Z�assemble:�
d�initialise
n	�open
x�
�
�get_word
�� w$<>"" �search
�� K%=�"r" �search
�
�write
�TTL%=TTL%+1
�
� done
�
�close
��
�  
�� �initialise
�
ADD%=0
�Bvalid$="abcdefghijklmnopqrstuvwxyz'ABCDEFGHIJKLMNOPQRSTUVWXYZ"
�V�0:�129:�0,8)�40:�0,9)�12"View Spell Check"�12:�0,10)�40:�1:�128:�28,0,30,39,14
�19 0 4 0 0 0
$�="*":A%=0
"�"Loading your dictionary ..."
"name$="DICTIONARY" 
,�"LOAD "+name$+" "+�~�
6�
@ 
J� �open
T�'"File to check",cname$
^chan1=� cname$
hchan2=�"TEXT"
rdone=�:�
|�
� 
�� �get_word
�	w$=""
�!C%=�#chan1:� �#chan1 done=�:�
�'� �valid$,�C%) � � #chan2,C%:� �tdA
�
w$=w$+�C%
�!C%=�#chan1:� �#chan1 done=�:�
�� �valid$,�C%) � �txA
��
� 
�� �close
��#0
��
�"Of"TTL%" words checked,"
'�'"  "ADD%"  were new to me, PHEW!"
�'"        Please wait ..."
&
P%=�-1
0� P%=P%+1:� ?P%=�"*":*FX21
:+�'"Saving a much bigger "+name$+" NOW!"
D)�"SAVE "+name$+" "+�~(�)+" "+�~(P%+5)
N�
X,�''''"         That's it, I'm finished!"
b	*FX18
l�
v 
�
� �search
�word$=w$
�� �w$,1)="'" w$=�w$,�w$-1)
�� �w$,1)="s" w$=�w$,�w$-1)
��� �w$,1)="'" w$=�w$,�w$-1) � � �w$,3)="n't" w$=�w$,�w$-3) � � �w$,2)="'d" w$=�w$,�w$-2) � � �w$,3)="'ve" w$=�w$,�w$-3)� � �w$,3)="'re" w$=�w$,�w$-3)
�� �w$,2)="ly" w$=�w$,�w$-2)
�!� �w$,4)="tion" w$=�w$,�w$-4)
�� �w$,2)="ed" w$=�w$,�w$-2)
�>� �w$,3)="ing" w$=�w$,�w$-3) � � �w$,2)="er" w$=�w$,�w$-2)
�� �w$,1)="'" w$=�w$,�w$-1)
�[� �w$,2)="un" w$=�w$,�w$-2) � � �w$,2)="de" w$=�w$,�w$-2) � � �w$,2)="in" w$=�w$,�w$-2)
�
� �w$=0 �
�$&B00=w$:� &C00:� A%=0 �
F�:�'"(I)gnore  (R)eplace  (A)dd":�129:�0:�'word$:�128:�1:K%=� � 32
� K%=�"i" �:�
2� K%=�"r" �'"Replace with ",word$:w$=word$:�:�
 � K%=�"a" ADD%=ADD%+1
*$� P%>&7030 �"Dictionary Full!":�
4$P%=$&B00+�(13)+"*"
>�
H�
R 
\� �write
f.� I%=1 � � word$:�#chan2,�(�word$,I%,1)):�
p�#chan2,C%
z�46
��
� 
�� �assemble
�dict=&70:word=&B00:p%=&440
�� I%=0 � 2 � 2
�P%=&C00
�[OPT I%
�SEI
�
LDX #0
�.lc
�5LDA word,X:� #&DF:STA word,X  \upper case letters
�INX
�CMP #&0D:BNE lc

.start
?LDA &06:STA dict:LDA &07:STA dict+1  \�=start of dictionary

LDY #0
$.compare
.
LDX #0
8<LDA (dict),Y:CMP #�"*":BEQ no_match  \end of dictionary?
B
.loop1
L:LDA (dict),Y:CMP word,X:BNE next_word  \letters match?
VINX:INY
`%CMP #&0D:BNE loop1  \end of word?
jLDA #0  \match found
t
.no_match
~STA &404  \set A%
�MLDA dict:STA p%:LDA dict+1:STA p%+1  \p% points to after last word tested
�CLI:RTS
�.next_word
�
LDY #0
�LDA #&0D
�
.loop2
� INC dict:BNE here:INC dict+1
�	.here
�$CMP (dict),Y:BNE loop2  \find CR
�AINC dict:BNE compare:INC dict+1:BNE compare  \start next word
�]
��
�

L � COPY & RENUMBER THE FOLLOWING AS 280,285,290 TO CALL NAMED DICTIONARY
$ � PRINT"LOAD DICTIONARY(Y/N)?";
& � IF (GET OR 32)<>ASC"y" ELSEPROC
(" � INPUT'"File to check",name$
�
00000000  0d 00 0a 34 f4 20 56 49  45 57 20 53 50 45 4c 4c  |...4. VIEW SPELL|
00000010  20 43 48 45 43 4b 45 52  20 28 41 4e 59 20 53 50  | CHECKER (ANY SP|
00000020  4f 4f 4c 45 44 20 46 49  4c 45 20 41 43 54 55 41  |OOLED FILE ACTUA|
00000030  4c 4c 59 29 0d 00 14 2e  f4 20 4f 52 49 47 49 4e  |LLY)..... ORIGIN|
00000040  41 4c 20 42 59 20 52 4f  4c 41 4e 44 20 57 41 44  |AL BY ROLAND WAD|
00000050  44 49 4c 4f 56 45 20 28  43 29 20 65 75 20 31 39  |DILOVE (C) eu 19|
00000060  38 37 0d 00 1e 2b f4 20  54 55 4e 45 44 20 55 50  |87...+. TUNED UP|
00000070  20 42 59 20 43 48 52 49  53 54 4f 50 48 45 52 20  | BY CHRISTOPHER |
00000080  43 48 41 44 57 49 43 4b  20 31 39 39 33 0d 00 28  |CHADWICK 1993..(|
00000090  30 f4 20 49 4e 43 4c 55  44 45 53 20 45 58 54 52  |0. INCLUDES EXTR|
000000a0  41 20 50 41 52 54 20 57  4f 52 44 53 20 54 4f 20  |A PART WORDS TO |
000000b0  54 45 53 54 20 41 4e 44  20 44 52 4f 50 0d 00 32  |TEST AND DROP..2|
000000c0  41 f4 20 43 48 45 43 4b  53 20 41 20 52 45 50 4c  |A. CHECKS A REPL|
000000d0  41 43 45 44 20 57 4f 52  44 20 41 47 41 49 4e 53  |ACED WORD AGAINS|
000000e0  54 20 54 48 45 20 44 49  43 54 59 2c 20 41 44 44  |T THE DICTY, ADD|
000000f0  53 20 49 46 20 4e 4f 54  20 46 4f 55 4e 44 0d 00  |S IF NOT FOUND..|
00000100  3c 3d f4 20 46 49 58 45  44 20 44 49 43 54 49 4f  |<=. FIXED DICTIO|
00000110  4e 41 52 59 20 4e 41 4d  45 2c 20 4d 4f 44 45 20  |NARY NAME, MODE |
00000120  34 20 41 44 44 45 44 20  43 4f 4c 4f 55 52 20 26  |4 ADDED COLOUR &|
00000130  20 57 4f 52 44 20 43 4f  55 4e 54 0d 00 46 21 ee  | WORD COUNT..F!.|
00000140  20 85 20 f1 27 3a d9 23  30 3a f6 3a f1 22 20 61  | . .':.#0:.:." a|
00000150  74 20 6c 69 6e 65 20 22  3b 9e 3a e0 0d 00 50 16  |t line ";.:...P.|
00000160  eb 34 3a d3 3d b8 50 2b  26 34 30 30 3a 2a 46 58  |.4:.=.P+&400:*FX|
00000170  31 36 0d 00 5a 0f f2 61  73 73 65 6d 62 6c 65 3a  |16..Z..assemble:|
00000180  d8 0d 00 64 0f f2 69 6e  69 74 69 61 6c 69 73 65  |...d..initialise|
00000190  0d 00 6e 09 f2 6f 70 65  6e 0d 00 78 05 f5 0d 00  |..n..open..x....|
000001a0  82 0d f2 67 65 74 5f 77  6f 72 64 0d 00 8c 14 e7  |...get_word.....|
000001b0  20 77 24 3c 3e 22 22 20  f2 73 65 61 72 63 68 0d  | w$<>"" .search.|
000001c0  00 96 15 e7 20 4b 25 3d  97 22 72 22 20 f2 73 65  |.... K%=."r" .se|
000001d0  61 72 63 68 0d 00 a0 0a  f2 77 72 69 74 65 0d 00  |arch.....write..|
000001e0  aa 0f 54 54 4c 25 3d 54  54 4c 25 2b 31 0d 00 b4  |..TTL%=TTL%+1...|
000001f0  0a fd 20 64 6f 6e 65 0d  00 be 0a f2 63 6c 6f 73  |.. done.....clos|
00000200  65 0d 00 c8 05 e0 0d 00  d2 06 20 20 0d 00 dc 11  |e.........  ....|
00000210  dd 20 f2 69 6e 69 74 69  61 6c 69 73 65 0d 00 e6  |. .initialise...|
00000220  0a 41 44 44 25 3d 30 0d  00 f0 42 76 61 6c 69 64  |.ADD%=0...Bvalid|
00000230  24 3d 22 61 62 63 64 65  66 67 68 69 6a 6b 6c 6d  |$="abcdefghijklm|
00000240  6e 6f 70 71 72 73 74 75  76 77 78 79 7a 27 41 42  |nopqrstuvwxyz'AB|
00000250  43 44 45 46 47 48 49 4a  4b 4c 4d 4e 4f 50 51 52  |CDEFGHIJKLMNOPQR|
00000260  53 54 55 56 57 58 59 5a  22 0d 00 fa 56 fb 30 3a  |STUVWXYZ"...V.0:|
00000270  fb 31 32 39 3a f1 8a 30  2c 38 29 89 34 30 3a f1  |.129:..0,8).40:.|
00000280  8a 30 2c 39 29 89 31 32  22 56 69 65 77 20 53 70  |.0,9).12"View Sp|
00000290  65 6c 6c 20 43 68 65 63  6b 22 89 31 32 3a f1 8a  |ell Check".12:..|
000002a0  30 2c 31 30 29 89 34 30  3a fb 31 3a fb 31 32 38  |0,10).40:.1:.128|
000002b0  3a ef 32 38 2c 30 2c 33  30 2c 33 39 2c 31 34 0d  |:.28,0,30,39,14.|
000002c0  01 04 11 ef 31 39 20 30  20 34 20 30 20 30 20 30  |....19 0 4 0 0 0|
000002d0  0d 01 0e 0f 24 93 3d 22  2a 22 3a 41 25 3d 30 0d  |....$.="*":A%=0.|
000002e0  01 18 22 f1 22 4c 6f 61  64 69 6e 67 20 79 6f 75  |.."."Loading you|
000002f0  72 20 64 69 63 74 69 6f  6e 61 72 79 20 2e 2e 2e  |r dictionary ...|
00000300  22 0d 01 22 17 6e 61 6d  65 24 3d 22 44 49 43 54  |"..".name$="DICT|
00000310  49 4f 4e 41 52 59 22 20  0d 01 2c 1a ff 22 4c 4f  |IONARY" ..,.."LO|
00000320  41 44 20 22 2b 6e 61 6d  65 24 2b 22 20 22 2b c3  |AD "+name$+" "+.|
00000330  7e 93 0d 01 36 05 e1 0d  01 40 05 20 0d 01 4a 0b  |~...6....@. ..J.|
00000340  dd 20 f2 6f 70 65 6e 0d  01 54 1c e8 27 22 46 69  |. .open..T..'"Fi|
00000350  6c 65 20 74 6f 20 63 68  65 63 6b 22 2c 63 6e 61  |le to check",cna|
00000360  6d 65 24 0d 01 5e 12 63  68 61 6e 31 3d 8e 20 63  |me$..^.chan1=. c|
00000370  6e 61 6d 65 24 0d 01 68  11 63 68 61 6e 32 3d ae  |name$..h.chan2=.|
00000380  22 54 45 58 54 22 0d 01  72 0c 64 6f 6e 65 3d a3  |"TEXT"..r.done=.|
00000390  3a db 0d 01 7c 05 e1 0d  01 86 05 20 0d 01 90 0f  |:...|...... ....|
000003a0  dd 20 f2 67 65 74 5f 77  6f 72 64 0d 01 9a 09 77  |. .get_word....w|
000003b0  24 3d 22 22 0d 01 a4 21  43 25 3d 9a 23 63 68 61  |$=""...!C%=.#cha|
000003c0  6e 31 3a e7 20 c5 23 63  68 61 6e 31 20 64 6f 6e  |n1:. .#chan1 don|
000003d0  65 3d b9 3a e1 0d 01 ae  27 e7 20 a7 76 61 6c 69  |e=.:....'. .vali|
000003e0  64 24 2c bd 43 25 29 20  8b 20 d5 20 23 63 68 61  |d$,.C%) . . #cha|
000003f0  6e 32 2c 43 25 3a e5 20  8d 74 64 41 0d 01 b8 0d  |n2,C%:. .tdA....|
00000400  77 24 3d 77 24 2b bd 43  25 0d 01 c2 21 43 25 3d  |w$=w$+.C%...!C%=|
00000410  9a 23 63 68 61 6e 31 3a  e7 20 c5 23 63 68 61 6e  |.#chan1:. .#chan|
00000420  31 20 64 6f 6e 65 3d b9  3a e1 0d 01 cc 19 e7 20  |1 done=.:...... |
00000430  a7 76 61 6c 69 64 24 2c  bd 43 25 29 20 e5 20 8d  |.valid$,.C%) . .|
00000440  74 78 41 0d 01 d6 05 e1  0d 01 e0 05 20 0d 01 ea  |txA......... ...|
00000450  0c dd 20 f2 63 6c 6f 73  65 0d 01 f4 07 d9 23 30  |.. .close.....#0|
00000460  0d 01 fe 05 db 0d 02 08  1e f1 22 4f 66 22 54 54  |.........."Of"TT|
00000470  4c 25 22 20 77 6f 72 64  73 20 63 68 65 63 6b 65  |L%" words checke|
00000480  64 2c 22 0d 02 12 27 f1  27 22 20 20 22 41 44 44  |d,"...'.'"  "ADD|
00000490  25 22 20 20 77 65 72 65  20 6e 65 77 20 74 6f 20  |%"  were new to |
000004a0  6d 65 2c 20 50 48 45 57  21 22 0d 02 1c 1f f1 27  |me, PHEW!".....'|
000004b0  22 20 20 20 20 20 20 20  20 50 6c 65 61 73 65 20  |"        Please |
000004c0  77 61 69 74 20 2e 2e 2e  22 0d 02 26 0a 50 25 3d  |wait ..."..&.P%=|
000004d0  93 2d 31 0d 02 30 1e f5  20 50 25 3d 50 25 2b 31  |.-1..0.. P%=P%+1|
000004e0  3a fd 20 3f 50 25 3d 97  22 2a 22 3a 2a 46 58 32  |:. ?P%=."*":*FX2|
000004f0  31 0d 02 3a 2b f1 27 22  53 61 76 69 6e 67 20 61  |1..:+.'"Saving a|
00000500  20 6d 75 63 68 20 62 69  67 67 65 72 20 22 2b 6e  | much bigger "+n|
00000510  61 6d 65 24 2b 22 20 4e  4f 57 21 22 0d 02 44 29  |ame$+" NOW!"..D)|
00000520  ff 22 53 41 56 45 20 22  2b 6e 61 6d 65 24 2b 22  |."SAVE "+name$+"|
00000530  20 22 2b c3 7e 28 93 29  2b 22 20 22 2b c3 7e 28  | "+.~(.)+" "+.~(|
00000540  50 25 2b 35 29 0d 02 4e  05 db 0d 02 58 2c f1 27  |P%+5)..N....X,.'|
00000550  27 27 27 22 20 20 20 20  20 20 20 20 20 54 68 61  |'''"         Tha|
00000560  74 27 73 20 69 74 2c 20  49 27 6d 20 66 69 6e 69  |t's it, I'm fini|
00000570  73 68 65 64 21 22 0d 02  62 09 2a 46 58 31 38 0d  |shed!"..b.*FX18.|
00000580  02 6c 05 e1 0d 02 76 05  20 0d 02 80 0d dd 20 f2  |.l....v. ..... .|
00000590  73 65 61 72 63 68 0d 02  8a 0c 77 6f 72 64 24 3d  |search....word$=|
000005a0  77 24 0d 02 94 1e e7 20  c2 77 24 2c 31 29 3d 22  |w$..... .w$,1)="|
000005b0  27 22 20 77 24 3d c0 77  24 2c a9 77 24 2d 31 29  |'" w$=.w$,.w$-1)|
000005c0  0d 02 9e 1e e7 20 c2 77  24 2c 31 29 3d 22 73 22  |..... .w$,1)="s"|
000005d0  20 77 24 3d c0 77 24 2c  a9 77 24 2d 31 29 0d 02  | w$=.w$,.w$-1)..|
000005e0  a8 98 e7 20 c2 77 24 2c  31 29 3d 22 27 22 20 77  |... .w$,1)="'" w|
000005f0  24 3d c0 77 24 2c a9 77  24 2d 31 29 20 8b 20 e7  |$=.w$,.w$-1) . .|
00000600  20 c2 77 24 2c 33 29 3d  22 6e 27 74 22 20 77 24  | .w$,3)="n't" w$|
00000610  3d c0 77 24 2c a9 77 24  2d 33 29 20 8b 20 e7 20  |=.w$,.w$-3) . . |
00000620  c2 77 24 2c 32 29 3d 22  27 64 22 20 77 24 3d c0  |.w$,2)="'d" w$=.|
00000630  77 24 2c a9 77 24 2d 32  29 20 8b 20 e7 20 c2 77  |w$,.w$-2) . . .w|
00000640  24 2c 33 29 3d 22 27 76  65 22 20 77 24 3d c0 77  |$,3)="'ve" w$=.w|
00000650  24 2c a9 77 24 2d 33 29  8b 20 e7 20 c2 77 24 2c  |$,.w$-3). . .w$,|
00000660  33 29 3d 22 27 72 65 22  20 77 24 3d c0 77 24 2c  |3)="'re" w$=.w$,|
00000670  a9 77 24 2d 33 29 0d 02  b2 1f e7 20 c2 77 24 2c  |.w$-3)..... .w$,|
00000680  32 29 3d 22 6c 79 22 20  77 24 3d c0 77 24 2c a9  |2)="ly" w$=.w$,.|
00000690  77 24 2d 32 29 0d 02 bc  21 e7 20 c2 77 24 2c 34  |w$-2)...!. .w$,4|
000006a0  29 3d 22 74 69 6f 6e 22  20 77 24 3d c0 77 24 2c  |)="tion" w$=.w$,|
000006b0  a9 77 24 2d 34 29 0d 02  c6 1f e7 20 c2 77 24 2c  |.w$-4)..... .w$,|
000006c0  32 29 3d 22 65 64 22 20  77 24 3d c0 77 24 2c a9  |2)="ed" w$=.w$,.|
000006d0  77 24 2d 32 29 0d 02 d0  3e e7 20 c2 77 24 2c 33  |w$-2)...>. .w$,3|
000006e0  29 3d 22 69 6e 67 22 20  77 24 3d c0 77 24 2c a9  |)="ing" w$=.w$,.|
000006f0  77 24 2d 33 29 20 8b 20  e7 20 c2 77 24 2c 32 29  |w$-3) . . .w$,2)|
00000700  3d 22 65 72 22 20 77 24  3d c0 77 24 2c a9 77 24  |="er" w$=.w$,.w$|
00000710  2d 32 29 0d 02 da 1e e7  20 c0 77 24 2c 31 29 3d  |-2)..... .w$,1)=|
00000720  22 27 22 20 77 24 3d c2  77 24 2c a9 77 24 2d 31  |"'" w$=.w$,.w$-1|
00000730  29 0d 02 e4 5b e7 20 c0  77 24 2c 32 29 3d 22 75  |)...[. .w$,2)="u|
00000740  6e 22 20 77 24 3d c2 77  24 2c a9 77 24 2d 32 29  |n" w$=.w$,.w$-2)|
00000750  20 8b 20 e7 20 c0 77 24  2c 32 29 3d 22 64 65 22  | . . .w$,2)="de"|
00000760  20 77 24 3d c2 77 24 2c  a9 77 24 2d 32 29 20 8b  | w$=.w$,.w$-2) .|
00000770  20 e7 20 c0 77 24 2c 32  29 3d 22 69 6e 22 20 77  | . .w$,2)="in" w|
00000780  24 3d c2 77 24 2c a9 77  24 2d 32 29 0d 02 ee 0d  |$=.w$,.w$-2)....|
00000790  e7 20 a9 77 24 3d 30 20  e1 0d 02 f8 1c 24 26 42  |. .w$=0 .....$&B|
000007a0  30 30 3d 77 24 3a d6 20  26 43 30 30 3a e7 20 41  |00=w$:. &C00:. A|
000007b0  25 3d 30 20 e1 0d 03 02  46 db 3a f1 27 22 28 49  |%=0 ....F.:.'"(I|
000007c0  29 67 6e 6f 72 65 20 20  28 52 29 65 70 6c 61 63  |)gnore  (R)eplac|
000007d0  65 20 20 28 41 29 64 64  22 3a fb 31 32 39 3a fb  |e  (A)dd":.129:.|
000007e0  30 3a f1 27 77 6f 72 64  24 3a fb 31 32 38 3a fb  |0:.'word$:.128:.|
000007f0  31 3a 4b 25 3d a5 20 84  20 33 32 0d 03 0c 11 e7  |1:K%=. . 32.....|
00000800  20 4b 25 3d 97 22 69 22  20 db 3a e1 0d 03 16 32  | K%=."i" .:....2|
00000810  e7 20 4b 25 3d 97 22 72  22 20 e8 27 22 52 65 70  |. K%=."r" .'"Rep|
00000820  6c 61 63 65 20 77 69 74  68 20 22 2c 77 6f 72 64  |lace with ",word|
00000830  24 3a 77 24 3d 77 6f 72  64 24 3a db 3a e1 0d 03  |$:w$=word$:.:...|
00000840  20 19 e7 20 4b 25 3d 97  22 61 22 20 41 44 44 25  | .. K%=."a" ADD%|
00000850  3d 41 44 44 25 2b 31 0d  03 2a 24 e7 20 50 25 3e  |=ADD%+1..*$. P%>|
00000860  26 37 30 33 30 20 f1 22  44 69 63 74 69 6f 6e 61  |&7030 ."Dictiona|
00000870  72 79 20 46 75 6c 6c 21  22 3a e1 0d 03 34 17 24  |ry Full!":...4.$|
00000880  50 25 3d 24 26 42 30 30  2b bd 28 31 33 29 2b 22  |P%=$&B00+.(13)+"|
00000890  2a 22 0d 03 3e 05 db 0d  03 48 05 e1 0d 03 52 05  |*"..>....H....R.|
000008a0  20 0d 03 5c 0c dd 20 f2  77 72 69 74 65 0d 03 66  | ..\.. .write..f|
000008b0  2e e3 20 49 25 3d 31 20  b8 20 a9 20 77 6f 72 64  |.. I%=1 . . word|
000008c0  24 3a d5 23 63 68 61 6e  32 2c 97 28 c1 77 6f 72  |$:.#chan2,.(.wor|
000008d0  64 24 2c 49 25 2c 31 29  29 3a ed 0d 03 70 0e d5  |d$,I%,1)):...p..|
000008e0  23 63 68 61 6e 32 2c 43  25 0d 03 7a 07 ef 34 36  |#chan2,C%..z..46|
000008f0  0d 03 84 05 e1 0d 03 8e  05 20 0d 03 98 0f dd 20  |......... ..... |
00000900  f2 61 73 73 65 6d 62 6c  65 0d 03 a2 1e 64 69 63  |.assemble....dic|
00000910  74 3d 26 37 30 3a 77 6f  72 64 3d 26 42 30 30 3a  |t=&70:word=&B00:|
00000920  70 25 3d 26 34 34 30 0d  03 ac 12 e3 20 49 25 3d  |p%=&440..... I%=|
00000930  30 20 b8 20 32 20 88 20  32 0d 03 b6 0b 50 25 3d  |0 . 2 . 2....P%=|
00000940  26 43 30 30 0d 03 c0 0b  5b 4f 50 54 20 49 25 0d  |&C00....[OPT I%.|
00000950  03 ca 07 53 45 49 0d 03  d4 0a 4c 44 58 20 23 30  |...SEI....LDX #0|
00000960  0d 03 de 07 2e 6c 63 0d  03 e8 35 4c 44 41 20 77  |.....lc...5LDA w|
00000970  6f 72 64 2c 58 3a 80 20  23 26 44 46 3a 53 54 41  |ord,X:. #&DF:STA|
00000980  20 77 6f 72 64 2c 58 20  20 5c 75 70 70 65 72 20  | word,X  \upper |
00000990  63 61 73 65 20 6c 65 74  74 65 72 73 0d 03 f2 07  |case letters....|
000009a0  49 4e 58 0d 03 fc 13 43  4d 50 20 23 26 30 44 3a  |INX....CMP #&0D:|
000009b0  42 4e 45 20 6c 63 0d 04  06 0a 2e 73 74 61 72 74  |BNE lc.....start|
000009c0  0d 04 10 3f 4c 44 41 20  26 30 36 3a 53 54 41 20  |...?LDA &06:STA |
000009d0  64 69 63 74 3a 4c 44 41  20 26 30 37 3a 53 54 41  |dict:LDA &07:STA|
000009e0  20 64 69 63 74 2b 31 20  20 5c 93 3d 73 74 61 72  | dict+1  \.=star|
000009f0  74 20 6f 66 20 64 69 63  74 69 6f 6e 61 72 79 0d  |t of dictionary.|
00000a00  04 1a 0a 4c 44 59 20 23  30 0d 04 24 0c 2e 63 6f  |...LDY #0..$..co|
00000a10  6d 70 61 72 65 0d 04 2e  0a 4c 44 58 20 23 30 0d  |mpare....LDX #0.|
00000a20  04 38 3c 4c 44 41 20 28  64 69 63 74 29 2c 59 3a  |.8<LDA (dict),Y:|
00000a30  43 4d 50 20 23 97 22 2a  22 3a 42 45 51 20 6e 6f  |CMP #."*":BEQ no|
00000a40  5f 6d 61 74 63 68 20 20  5c 65 6e 64 20 6f 66 20  |_match  \end of |
00000a50  64 69 63 74 69 6f 6e 61  72 79 3f 0d 04 42 0a 2e  |dictionary?..B..|
00000a60  6c 6f 6f 70 31 0d 04 4c  3a 4c 44 41 20 28 64 69  |loop1..L:LDA (di|
00000a70  63 74 29 2c 59 3a 43 4d  50 20 77 6f 72 64 2c 58  |ct),Y:CMP word,X|
00000a80  3a 42 4e 45 20 6e 65 78  74 5f 77 6f 72 64 20 20  |:BNE next_word  |
00000a90  5c 6c 65 74 74 65 72 73  20 6d 61 74 63 68 3f 0d  |\letters match?.|
00000aa0  04 56 0b 49 4e 58 3a 49  4e 59 0d 04 60 25 43 4d  |.V.INX:INY..`%CM|
00000ab0  50 20 23 26 30 44 3a 42  4e 45 20 6c 6f 6f 70 31  |P #&0D:BNE loop1|
00000ac0  20 20 5c 65 6e 64 20 6f  66 20 77 6f 72 64 3f 0d  |  \end of word?.|
00000ad0  04 6a 18 4c 44 41 20 23  30 20 20 5c 6d 61 74 63  |.j.LDA #0  \matc|
00000ae0  68 20 66 6f 75 6e 64 0d  04 74 0d 2e 6e 6f 5f 6d  |h found..t..no_m|
00000af0  61 74 63 68 0d 04 7e 15  53 54 41 20 26 34 30 34  |atch..~.STA &404|
00000b00  20 20 5c 73 65 74 20 41  25 0d 04 88 4d 4c 44 41  |  \set A%...MLDA|
00000b10  20 64 69 63 74 3a 53 54  41 20 70 25 3a 4c 44 41  | dict:STA p%:LDA|
00000b20  20 64 69 63 74 2b 31 3a  53 54 41 20 70 25 2b 31  | dict+1:STA p%+1|
00000b30  20 20 5c 70 25 20 70 6f  69 6e 74 73 20 74 6f 20  |  \p% points to |
00000b40  61 66 74 65 72 20 6c 61  73 74 20 77 6f 72 64 20  |after last word |
00000b50  74 65 73 74 65 64 0d 04  92 0b 43 4c 49 3a 52 54  |tested....CLI:RT|
00000b60  53 0d 04 9c 0e 2e 6e 65  78 74 5f 77 6f 72 64 0d  |S.....next_word.|
00000b70  04 a6 0a 4c 44 59 20 23  30 0d 04 b0 0c 4c 44 41  |...LDY #0....LDA|
00000b80  20 23 26 30 44 0d 04 ba  0a 2e 6c 6f 6f 70 32 0d  | #&0D.....loop2.|
00000b90  04 c4 20 49 4e 43 20 64  69 63 74 3a 42 4e 45 20  |.. INC dict:BNE |
00000ba0  68 65 72 65 3a 49 4e 43  20 64 69 63 74 2b 31 0d  |here:INC dict+1.|
00000bb0  04 ce 09 2e 68 65 72 65  0d 04 d8 24 43 4d 50 20  |....here...$CMP |
00000bc0  28 64 69 63 74 29 2c 59  3a 42 4e 45 20 6c 6f 6f  |(dict),Y:BNE loo|
00000bd0  70 32 20 20 5c 66 69 6e  64 20 43 52 0d 04 e2 41  |p2  \find CR...A|
00000be0  49 4e 43 20 64 69 63 74  3a 42 4e 45 20 63 6f 6d  |INC dict:BNE com|
00000bf0  70 61 72 65 3a 49 4e 43  20 64 69 63 74 2b 31 3a  |pare:INC dict+1:|
00000c00  42 4e 45 20 63 6f 6d 70  61 72 65 20 20 5c 73 74  |BNE compare  \st|
00000c10  61 72 74 20 6e 65 78 74  20 77 6f 72 64 0d 04 ec  |art next word...|
00000c20  05 5d 0d 04 f6 05 ed 0d  05 00 05 e1 0d 05 0a 4c  |.].............L|
00000c30  20 f4 20 43 4f 50 59 20  26 20 52 45 4e 55 4d 42  | . COPY & RENUMB|
00000c40  45 52 20 54 48 45 20 46  4f 4c 4c 4f 57 49 4e 47  |ER THE FOLLOWING|
00000c50  20 41 53 20 32 38 30 2c  32 38 35 2c 32 39 30 20  | AS 280,285,290 |
00000c60  54 4f 20 43 41 4c 4c 20  4e 41 4d 45 44 20 44 49  |TO CALL NAMED DI|
00000c70  43 54 49 4f 4e 41 52 59  0d 05 14 24 20 f4 20 50  |CTIONARY...$ . P|
00000c80  52 49 4e 54 22 4c 4f 41  44 20 44 49 43 54 49 4f  |RINT"LOAD DICTIO|
00000c90  4e 41 52 59 28 59 2f 4e  29 3f 22 3b 0d 05 1e 26  |NARY(Y/N)?";...&|
00000ca0  20 f4 20 49 46 20 28 47  45 54 20 4f 52 20 33 32  | . IF (GET OR 32|
00000cb0  29 3c 3e 41 53 43 22 79  22 20 45 4c 53 45 50 52  |)<>ASC"y" ELSEPR|
00000cc0  4f 43 0d 05 28 22 20 f4  20 49 4e 50 55 54 27 22  |OC..(" . INPUT'"|
00000cd0  46 69 6c 65 20 74 6f 20  63 68 65 63 6b 22 2c 6e  |File to check",n|
00000ce0  61 6d 65 24 0d ff                                 |ame$..|
00000ce6
PROGS/VEWCHK/VIEWCHECK.m0
PROGS/VEWCHK/VIEWCHECK.m1
PROGS/VEWCHK/VIEWCHECK.m2
PROGS/VEWCHK/VIEWCHECK.m4
PROGS/VEWCHK/VIEWCHECK.m5