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 |