В MSX-BASIC имя переменной это два байта. Тип хранится отдельно и по совместительству является размером. По умолчанию A, A%, A$, A() -- разные переменные, потому что имеют разные типы. Если вызвать DEFINTA, A становится эквивалентом A%.

Можно без потерь сделать имена переменных трехбуквенными, если закодировать их в RADIX-50: в те же два байта помещаются 3 буквы и цифры. Подчеркивание не в стандарте RADIX50, но можно использовать вопросик или точку. Преобразования не самые удобные, правда.

В BASIC 2.5 я не залезал глубоко, но по-моему дела обстоят немного иначе -- мне показалось, что признак строковости это старший битик в имени переменной ($00,$41 = A, $80,$41 = A$, $C1,$41 = AA$). Так конечно RADIX50 не вклячишь.