В общем я решил так сделать и сделал
Сначала добавляю какое то число находящееся в середине нужного диапазона к тому числу которое инкрементируется каждое обновление экрана
потом беру счетчик Program Counter - вроде он содержит адрес исполняемой комманды, ну не знаю его ли он точно содержит или чего другое, потом делю его на то число которое получилось после добавления к инкрементируемому каждый экран, а результат потом еще разделяю на 2 части по 4 бита, ну мне так нужнее и смотрю не вылетело ли каждое за указанные рамки, если вылетело то еще раз добавляю среднее число к тому результату который получился, а нижнее число (нижние 4 бита) если выбиваются из диапазона то тупо делю сдвигом вправо
в принципе такими махинациями получается ну какойто псевдо-рандом, который сложно предугадать, т.к. там еще параметры бывают меняются и рандом берется несколько раз
в общем результатом доволен
но делю не сдвигом а именно делением в M68K это комманда divu.w
в принципе шустро делает, скоростью я доволен, да и рандомностью тоже
А вообще мне нужно было число от 0 до 100