This  is  a  routine  to  complement Variable dump. Having identified mistyped
variables  with  VARDUMP  you can now pinpoint the offending line number using
VFIND.

The  new command can be used with or without Vardump in memory and will accept
upper  or  lower  case as valid input. To use it, put the variable name into a
string  such as A$="FRED", then type —VFIND,àA$ and a list of all line numbers
containing the variable FRED will be printed out.

As  FRED may also match some chance combinations of program bytes, you may get
a few spurious line numbers listed.
This  routine will add the RSX command VARDUMP to list all variables used in a
Basic program.

The  program  you  want  to list must be run before you can use VARDUMP. After
each  variable  name  appears you must press a key to see the next. This is to
prevent a long list scrolling uncontrolably off the screen.

Run the program and CALL &A000 to enable the RSX.

https//CPCrulez.fr

10 REM VFIND
20 REM By Ian Sharpe
30 REM
40 REM (c) Computing with the Amstrad
50 REM
60 REM
70 MEMORY &9E5F
80 FOR addr=&9E60 TO &9FF6
90 READ byte$:byteval=VAL("&"+byte$)
100 POKE addr,byteval
110 check=check+byteval
120 NEXT
130 IF check<>47755 THEN PRINT"ERROR IN DATA":END
140 CALL &9FD3
150 PRINT" A$=";CHR$(34);"variablename";CHR$(34)
160 PRINT" —VFIND,àA$"
170 PRINT" Omit $ and % suffixes"
180 NEW
190 DATA FE,01,C0,DD,6E,00,DD,66
200 DATA 01,E5,DD,E1,DD,7E,00,FE
210 DATA 00,C8,FE,29,D0,32,A7,9F
220 DATA 47,DD,6E,01,DD,66,02,DD
230 DATA 21,AC,9F,7E,FE,61,DA,8B
240 DATA 9E,CB,AF,DD,77,00,DD,23
250 DATA 23,10,F0,DD,CB,FF,FE,21
260 DATA 70,01,22,A8,9F,3E,42,CD
270 DATA 1E,BB,C0,DD,2A,A8,9F,DD
280 DATA 5E,02,DD,56,03,ED,53,AA
290 DATA 9F,DD,5E,00,DD,56,01,7B
300 DATA B2,C8,D5,DD,E5,DD,19,DD
310 DATA 22,A8,9F,DD,E1,E1,11,04
320 DATA 00,DD,19,AF,ED,52,3A,A7
330 DATA 9F,5F,16,00,AF,ED,52,DA
340 DATA 9D,9E,CA,9D,9E,45,0E,00
350 DATA FD,21,AC,9F,DD,7E,00,FE
360 DATA 61,DA,EE,9E,CB,AF,FD,BE
370 DATA 00,CA,FB,9E,DD,23,10,EC
380 DATA C3,9D,9E,DD,E5,FD,E5,C5
390 DATA 3A,A7,9F,47,DD,7E,00,FE
400 DATA 61,DA,1D,9F,CB,7F,C2,16
410 DATA 9F,CB,AF,C3,1D,9F,FE,D7
420 DATA DA,1D,9F,CB,AF,FD,BE,00
430 DATA C2,29,9F,DD,23,FD,23,10
440 DATA DB,3E,00,B8,CA,37,9F,C1
450 DATA FD,E1,DD,E1,C3,F4,9E,2A
460 DATA AA,9F,DD,21,97,9F,FD,21
470 DATA A2,9F,0E,05,DD,5E,00,DD
480 DATA 56,01,06,00,AF,ED,52,DA
490 DATA 56,9F,04,C3,4C,9F,19,FD
500 DATA 70,00,FD,23,DD,23,DD,23
510 DATA 0D,CA,67,9F,C3,44,9F,06
520 DATA 04,DD,21,A2,9F,DD,7E,00
530 DATA FE,00,C2,7D,9F,DD,36,00
540 DATA F0,DD,23,10,F0,06,06,DD
550 DATA 21,A1,9F,DD,7E,00,C6,30
560 DATA CD,5A,BB,DD,23,10,F4,C1
570 DATA FD,E1,DD,E1,C3,9D,9E,10
580 DATA 27,E8,03,64,00,0A,00,01
590 DATA 00,F0,00,00,00,00,00,00
600 DATA 00,00,00,00,00,00,00,00
610 DATA 00,00,00,00,00,00,00,00
620 DATA 00,00,00,00,00,00,00,00
630 DATA 00,00,00,00,00,00,00,00
640 DATA 00,00,00,00,00,00,00,00
650 DATA 00,00,00,00,21,F6,9F,3E
660 DATA 01,BE,C8,36,01,01,E7,9F
670 DATA 21,F2,9F,CD,D1,BC,C9,EC
680 DATA 9F,C3,60,9E,56,46,49,4E
690 DATA C4,00,00,00,00,00,00,00