Yes, it is supposed to display the possible range of video modes available and allow you to switch between them, however the program is "a little strange" in the way that it allows you to select them.
The key element is that asc(inkey$())-48 part in the program, which takes a key from the keyboard and assumes it's a number from 0 to 9. An ASCII zero is code 48 from the keyboard, while the numbers of 1 to 9 are codes 48 to 57 respectively. Since you say you get a list of 24 codes for example, that means you can only get into any of the first ten. (0 to 9.)
If you would like to change the program to be able to get into all 24 of the modes you see listed then you must change the way the keyboard is interpretted, making the asc(inkey$())-48 into the term of asc(inkey$())-65. This allows that each mode coud be selected by pressing A to Z on the keyboard because ASCII A is the value of 65 in the ASCII code.
Another way to handle this is;
position = asc(inkey$())-48
if position > 57 then position = position - 7
Which corrects for the 7 keys that exist between "9" and "A" on the ASCII code scale. Using this, A=10, B=11 and so on, after the number keys of 0 to 9. And finally, you should make a check to see if the value is valid in the check list itself putting the following in just before the code that gets the values and tries to switch mode;
if position <= checklist quantity()
...(change modes stuff here)...
endif
goodluck,
S.
Any truly great code should be indisguishable from magic.