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

Твердыня модульных языков
Текущее время: 28 мар 2024, 11:13

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




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 18 май 2016, 00:00 
Не в сети

Сообщения: 76
В А2 критические ошибки исправляют достаточно оперативно.
Буквально недавно я и Богдан (тоже из Киева, как и я) наткнулись независимо на один и тот же специфический баг.
WinApi колбеки валили систему. Я делал биндинг библиотеки BASS, Богдан делал биндинг к UnRar. И тот и тот биндинги, к слову, сделаны.
А ошибка Феликсом Фридрихом (главный разработчик компилятора Fox) была исправлена менее чем за сутки.
Ещё начали проект MicroA2, его можно рассматривать как альтернативу линковке .exe своего приложения. Просто, вместо старта рабочего стола A2 стартует лишь GUI форма вашего приложения в WinApi окне. Если у формы не задан флажок WMWindowManager.FlagNoResizing то WinApi окно будет с возможностью ресайза.
В A2 можно накидать довольно симпатичный GUI. Чем не кросс-платформенная GUI библиотека? :) Естественно, благодаря динамической загрузке модулей в одной сборке может быть несколько приложений, использующий общие объектные модули.
http://sage.com.ua/cgi-bin/blog.cgi?m=dl&f=MicroA2.zip


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

Сообщения: 189
Ага, я смотрел, пробывал, читал... :) Классно!

Фридриху надо сказать, что бы немножко исправил либо ассемблер, либо модуль Math.Mod.
Не рисует оно окружности, блин, крест получается. То есть складывает окружность в систему координат :)
А квадратные корни путём деления на нечетные, ну блиииииннннн.... :) не хочу даже заморачиваться!


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

Сообщения: 76
S.Atan писал(а):
Не рисует оно окружности, блин, крест получается.
То есть складывает окружность в систему координат :)
Можно пример кода? А то не понятно, о каких окружностях речь...
S.Atan писал(а):
А квадратные корни путём деления на нечетные, ну блиииииннннн.... :) не хочу даже заморачиваться!
Тоже не понятно. Реализация квадратного корня в Math.Mod, имеется в виду? Так там команды сопроцессора используются.


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

Сообщения: 189
sage писал(а):
Можно пример кода? А то не понятно, о каких окружностях речь...

PROCEDURE -sqrt(x: Real): Real;
Эта процедура в WinAos возвращает 0 при любых значениях начиная с ревизии больше 2081

Вот такой код работает
Код: "OBERON"
  1. PROCEDURE -sqrt(x: Real): Real;
  2. CODE {SYSTEM.i386, SYSTEM.FPU}
  3. DB 0D9H, 004H, 024H (* FLD [ESP] *)
  4. DB 0D9H, 0FAH (* FSQRT ST(0) *)
  5. DB 058H (* POP EAX *)
  6. END sqrt;

Но это на OP2 компиляторе.
В FoxCompilere та же функция в i386.Match.mod возвращает 0???

sage писал(а):
Реализация квадратного корня в Math.Mod, имеется в виду?

Нет, это из истории создания закруглённых углов в iOS Apple :D
Там вещественных чисел по моему не было, так вот использовался алгоритм сложения нечетных чисел
3^2 = 1 + 3 + 5 = 9 (сумма N нечетных чисел есть квадрат их количества = N^2)
4^2 = 1 +3 + 5 + 7 = 16

Вообщем в MicroVCL_3 модуль Graphics.mod содержит алгоритмы Ву и Брезенхема для отрисовки прямых, окружностей и антиалиасинга, так вот при компиляции в OPCL оно работает, рисует окружности и т.д как положено, а при компиляции Fox-ом рисует вместо окружностей крестики с диаметром окружности, ну то есть схлопывает синусоиду!!!


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

Сообщения: 76
S.Atan писал(а):
Эта процедура в WinAos возвращает 0 при любых значениях начиная с ревизии больше 2081
Это воспринимать как тонкий тролинг?
Сегодня уже 6685 ревизия. Вы хотите сказать, что 4600 ревизий sqrt ноль возвращает для всех значений и это никто не исправит?
Вот, тестовый код:
Код: "OBERON"
  1. MODULE Untitled;
  2.  
  3. IMPORT
  4. Math, Commands;
  5.  
  6. PROCEDURE Test*(c: Commands.Context);
  7. VAR
  8. i: LONGINT;
  9. BEGIN
  10. FOR i := 0 TO 9 DO
  11. c.out.Float(Math.sqrt(i), 20);
  12. c.out.Ln
  13. END
  14. END Test;
  15.  
  16. END Untitled.
Вот, результат на последней ревизии:
Цитата:
0.00000000000E+000
1.00000000000E+000
1.41421353817E+000
1.73205077648E+000
2.00000000000E+000
2.23606801033E+000
2.44948983192E+000
2.64575123787E+000
2.82842707634E+000
3.00000000000E+000
Можете сами запустить, убедиться...
S.Atan писал(а):
Вот такой код работает
Код: "OBERON"
  1. PROCEDURE -sqrt(x: Real): Real;
  2. CODE {SYSTEM.i386, SYSTEM.FPU}
  3. DB 0D9H, 004H, 024H (* FLD [ESP] *)
  4. DB 0D9H, 0FAH (* FSQRT ST(0) *)
  5. DB 058H (* POP EAX *)
  6. END sqrt;
Так, он как-раз в I386.Math.Mod сейчас и присутствует.
S.Atan писал(а):
Но это на OP2 компиляторе.
Ну, так ранние ревизии WinAos как-раз его и использовали!
S.Atan писал(а):
Вообщем в MicroVCL_3 модуль Graphics.mod содержит алгоритмы Ву и Брезенхема для отрисовки прямых, окружностей и антиалиасинга, так вот при компиляции в OPCL оно работает, рисует окружности и т.д как положено, а при компиляции Fox-ом рисует вместо окружностей крестики с диаметром окружности, ну то есть схлопывает синусоиду!!!
А у меня ваш MicroVCL не собирается ни OP2 ни Fox-ом... Можете конкретный кусок кода показать, что-бы не делать голословных заявлений?


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

Сообщения: 189
OP2 он и не соберётся, мы его уже несколько раз исправляли и переделывали, и я тут не раз это описывал и указывал, более того, первым делом я убрал привязку к реестру и на коровнике сообщил об этом (и только через год!!! А.Ильин вытерев пот со лба, на гитхабе написал что НАКОНЕЦ ТО он справился с реестром :D , я как прочитал, чуть не поперхнулся), увеличивали диапазоны CASE оператора и убирали небольшие глюки, я вечером постараюсь накидать код.

OPCL брать тут -> http://zx.oberon.org/forum/viewtopic.php?f=15&t=268 Первый пост, папка Bin

Ну и расположить папки примерно так:
Sample
--Bin
--MicroVcl3_1


Дома попробую на голом компе... Отпишусь...

Fox я использовал отсюда - http://zx.oberon.org/forum/viewtopic.php?f=38&t=266 ревизии 6606.
На счет голословности - ребята, вы как нибудь поосторожнее, я же не просто так тут в пузырьки дую. А конкретно трачу время, переписываю библиотеку для Fox, проверяю...

Цитата:
Вот, результат на последней ревизии:

К стати я Богдана ещё с давних пор тероризирую дробными, то что выдаёт интерпретатор в AOS и то что выдаёт компилятор - две разные вещи! Ваш код интерпретируется системой и выводится на экран, (раньше так и было, сейчас может по другому)...


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

Сообщения: 76
S.Atan писал(а):
На счет голословности - ребята, вы как нибудь поосторожнее, я же не просто так тут в пузырьки дую. А конкретно трачу время, переписываю библиотеку для Fox, проверяю...
Договорились, будем поосторожнее ;)
Просто я смотрю, реально уже 3 человека пишут одни и те же графические примитивы. Уже писали-бы вместе, что-ли в общем репозитории... Вы пишете, Богдан пишет и metacore (есть предположение, что metacore и Kemet одно лицо) пишет прямо в главном репозитории А2. Никакой кооперации что-то у оберонщиков... :cry:
Не было-бы более продуктивно не повторять один и тот же путь, а делать вместо этого больше разных, хороших и полезных подсистем???


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

Сообщения: 76
Вот, Богдан говорит, что его библиотека уже готова.
Попросил скриншот сюда закинуть.
Богдан писал(а):
Я кстати для антиалиасинга круга - сам алгоритм разработал, это не порт и не копипаста

Вложение:
graphics.png
graphics.png [ 120.13 КБ | Просмотров: 15535 ]


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

Сообщения: 189
sage писал(а):
В Оберон-рассылке по сей день активно обсуждают Native Oberon


А я вообще склоняюсь к мысли, что он актуален сейчас как никогда.
Выполнен на стандартах как того времени так и по ныне (стандарты BIOS я имею ввиду), закрытость документации и драйверов 3D акселераторов не позволяют выпрыгнуть дальше VESA, но появились как упомянул ранее микроконтроллеры, дисплеи и описания основных работ с ними. Уже как стимул. A2 довольно великоват для начального изучения, а вот Native Oberon как самое то, для понятия основ построения операционных систем. Написан классно (ну... не без непонятных моментов). Маленький но юркай :D поэтому и вызывает интерес публики.


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

Сообщения: 76
S.Atan писал(а):
3D акселераторов не позволяют выпрыгнуть дальше VESA
Уже и не выпрыгнет, видимо. Для микроконтроллеров с ограниченными возможностями, видимо, самое то.
Для А2 ещё шанс есть, благодаря многопоточности, можно и на VESA неплохо графику замутить ;)


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2, 3  След.

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


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club