1

Тема: Поддержка FPU

Загрузил на GitHub версию System с поддержкой FPU и функциями случайных чисел. Но «Крестики-нолики» почему-то выводятся с артефактами. Delphi 6.

Вопрос по инициализации. Вынес ее в отдельную процедуру InitFPU по аналогии с модулем KOL. Включить в initialization? Для Колибри потом никакую финализацию не надо делать?

Добавлено 2020-06-22 в 02:44

В Delphi 7 нормально. Гм.

2

Re: Поддержка FPU

функциями случайных чисел.

function _RandExt: Extended;
begin
  Result := 1 / RandInt(0, $FFFFFFFE);
end;

А если RandInt вернёт 0?

Вынес ее в отдельную процедуру InitFPU по аналогии с модулем KOL. Включить в initialization?

Да, это будет логично. Оно же так и сделано под другие ОС.
Ведь эту функцию всё равно нужно было бы вызвать до начала работы с плавающей запятой.

Добавлено 2020-06-22 в 14:00

Freeman пишет:

Но «Крестики-нолики» почему-то выводятся с артефактами. Delphi 6.
[...]
В Delphi 7 нормально. Гм.

Трудно сказать, предположу, вот код

write('%c%c', [key[j],' ']);

Вот это ' ' как трактуется? Как строка или как символ? Возможно, есть различия между Delphi 6 и 7(а, значит, и в 4, 5 тоже, вероятно, так).
Надо сравнить исходную версию и изменённую для KolibriOS.

А вообще первоначальный исходник компилируется в TMT Pascal и работает правильно, только надо вместо WinCrt сделать просто CRT.
Так что, может дело даже не в компиляторе, а у нас в CRT что-то не верно реализовано.