Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 22 ноя 2017, 20:12

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 28 сен 2013, 00:32 
Не в сети
Аватара пользователя

Сообщения: 843
Откуда: Днепропетровская обл.
Такая идея. Когда для вещественных вычислений не так важно быстродействие, как объём занимаемой памяти, можно разработать модуль ZXRomCalc, который предоставит доступ к подпрограммам вещественного калькулятора Спектрума (RST #28) вместо более быстрой, но менее точной и менее компактной реализации вещественных вычислений SDCC. Выглядеть это может, например, так:
Код: "OBERON"
  1. MODULE TestCalc;
  2. IMPORT Calc := ZXRomCalc;
  3. VAR
  4. result: INTEGER;
  5. BEGIN
  6. Calc.IntToStack(24); (* Положить на стек калькулятора число 24. *)
  7. Calc.Run; (* Запуск калькулятора (RST #28). *)
  8. Calc.PiDiv2; (* Ложим на стек число Пи/2 (#A3). *)
  9. Calc.Mult (* Умножим 24 на Пи/2 (#04). *)
  10. Calc.Done; (* Закончили работать с калькулятором (#38). *)
  11. result := Calc.StackToInt(); (* Выводим округленный результат в целую переменную result. *)
  12. END TestCalc.
Этот пример будет занимать чуть более десятка байт, а вещественная арифметика SDCC — не один килобайт. Интересно было бы конечно поэкспериментировать на Z80 с вещественной арифметикой пониженной точности, возможно, она была бы полезной.

Реализовывать такой модуль в ближайшем будущем не собираюсь за ненадобностью, но пусть идея идёт в массы. :)


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 09 окт 2013, 18:19 
Не в сети

Сообщения: 104
This might give me some more bytes to play with


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 14 окт 2013, 10:29 
Не в сети
Администратор
Аватара пользователя

Сообщения: 237
Откуда: Россия
Место это конечно сэкономит, но зато вычисление формулы придется писать не на Обероне и даже не на Бейсике, а почти на Форте :)


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 14 окт 2013, 20:54 
Не в сети
Аватара пользователя

Сообщения: 843
Откуда: Днепропетровская обл.
И непереносимо! Но это же всё не от хорошей жизни. ;) А в комментах можно дать наглядную формулу. :)

slenkar, I would advise you to carefully examine the memory usage for each part of your game, especially related with REAL arithmetic. If you can, get rid of the real arithmetic at all. INTEGER arithmetic can be used successfully to simulate the real functions like Sin/Cos, etc.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 02 сен 2016, 04:55 
Не в сети
Аватара пользователя

Сообщения: 843
Откуда: Днепропетровская обл.
Реализовал-таки библиотечку для компактной вещественной арифметики.


Вложения:
TestCalc.tap [250 байт]
Скачиваний: 96
TestCalc.png
TestCalc.png [ 9.56 КБ | Просмотров: 4659 ]
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Тех.поддержка phpBB