Не могу разобраться с участком кода, а именно:
1. Как к элементу массива Ray прибавляют число 1000, ведь тип элементов массива Ray это байты, а байт может иметь максимальное значение 255?
2. Переменная jj в цикле инкрементируется от 0 до 255, как же тогда присваивается значение переменной sj:=lin[s11[jj],jjj]? Переменной sj присваивается значение байта из массива lin, адрес этого байта - это строка s11[jj], и столбец jjj, Нестыковка именно со значением строки, значение строки это jj-й элемент массива s11, но в массиве s11 всего 4 элемента(байта), а переменная jj инкрементируется до 255.
Да-а-а...
Код фтопку!
P.S. Могу лишь предположить, что к тебе попал не целый исходник программы, а лишь её фрагмент. Отсюда и нестыковки. Раз уж ты пытаешься научиться - попробуй реализовать собственный вариант решения. Появятся вопросы по нему - задавай.