Проблема только в кодировке. От типа компилятора работоспособность этой программы никак не зависит. Если кодировка русских букв однобайтовая (cp1251, cp866 и т.п.), то все будет работать. Если многобайтовая (utf8), то программа даже не скомпилируется, так как уже в строке var m: array ['а'..'я'] of byte; возникнет ошибка. Компилятор требует в качестве индекса массива порядковый тип, а получает [string..string] вместо ожидаемого [char..char].