125. DIM oddity ~~~~~~~~~~ If you have already dimensioned a numeric or string array in a program, such as A$(100), FRED(55) or mem%(300), then any attempt to redimension it will result in the error message "Bad DIM". In some versions of BASIC, though sadly not BBC BASIC, you can legally redimension an array, or reclaim the memory it occupies, provided you 'kill' it first, eg KILL A$ , ERASE A$ etc, (the syntax varies). However, if you dimension an area of memory with the syntax DIM mem% 100 , as one might do if reserving memory for some data or machine code, then it can be redimensioned without killing it first, and without generating any error message. If this sounds too good to be true, then you're dead right! Every time you redimension the area, even if you are reserving the same or less space than before, the old area is 'thrown away', and new space reserved. If you don't do this too often, then it may be useful to you, but try the short program below and see how it rapidly gobbles up all the memory. This applies equally to all versions of BBC BASIC that I have come across. 10 REPEAT:DIM A% 50:UNTIL FALSE 20 END