nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 29 Mar 2024 04:01



Reply to topic  [ 235 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 16  Next
а не замутить ли нам недосимулятр? 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
А я сегодня RS-триггер пробовал... и пришел к выводу, что с кнопками ты прав.
Ещё не нашел переключателя на два положения. Так что триггер был с раздельным
запуском по R и S от кнопок через инверторы. :wink:

Вот почему и не люблю такие продукты - сыростью от них веет... :-?

Хорошо что недобрался до мультивибратора на RS-триггере с R,С цепями...
Впрочем у EWB тоже есть такой грех. У инверторов нет аналоговых свойств.
Поэтому я и делал вот тут цифровые элементы на транзисторах для EWB.

_________________
iLavr


05 Jul 2012 10:48
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Lavr wrote:
Вот почему и не люблю такие продукты - сыростью от них веет... :-?

Не совсем согласен. Свою цель - образовательную - сей продукт выполняет неплохо. Но нам ведь хочется бОльшего?..

Да, переключатели были бы весьма кстати. Их тоже можно реализовать штатными средствами, вот только как сделать "анимацию" включено-выключено? Та же проблема и со светодиодными индикаторами. Тут, видимо, только править исходники.


05 Jul 2012 11:07
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
У меня альтернативное предложение - а давайте свой опен-сорцный симулятор замутим, собрав воедино всё что хочется...


Я вот подумал, что с нуля мы "свой опен-сорцный симулятор" никогда не дождёмся,
т.к. все мы люди в жизни занятые...

А быть может тебе гораздо легче и быстрее будет доработать CEDAR Logic Simulator
до Линух версии?

Ты же сам сказал:
Shaos wrote:
...виджеты wx заюзаны в программулине - они мультиплатформенные,
однако сама программа только под винду распотраняется,
да и судя по исходникам оно только под винду и соберётся ...

Значит исходники можно попробовать адаптировать?

Тогда бы у нас здесь была единая платформа для симуляции логики с любимым
нашим процем Z80.

Можно было бы на ней мутить общие проекты, которые мы пока на словах обсуждаем.
А так и общие наработки были бы доступны всем...

Ну и в открытом коде всяк мог бы свои "мульки" в свой симулятор добавлять:
кому УГО элементов другие нравятся, а кто может "осциллограф" покрасивее хочет... :wink:

_________________
iLavr


11 Aug 2012 15:33
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22422
Location: Silicon Valley
Reply with quote
Post 
Я боюсь, что трудоёмкость портации данного программного продукта на линух, будет равносильна написанию нового продукта аналогичной функциональности с нуля...

_________________
:dj: https://mastodon.social/@Shaos


11 Aug 2012 20:58
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
...виджеты wx заюзаны в программулине - они мультиплатформенные,
однако сама программа только под винду распотраняется,
да и судя по исходникам оно только под винду и соберётся ...


А где ты исходники смотрел? Я что-то не найду никак...

_________________
iLavr


11 Aug 2012 21:28
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22422
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
Shaos wrote:
...виджеты wx заюзаны в программулине - они мультиплатформенные,
однако сама программа только под винду распотраняется,
да и судя по исходникам оно только под винду и соберётся ...


А где ты исходники смотрел? Я что-то не найду никак...


http://cedarlogic.svn.sourceforge.net/v ... edarlogic/

_________________
:dj: https://mastodon.social/@Shaos


11 Aug 2012 21:38
Profile WWW
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Lavr wrote:
Значит исходники можно попробовать адаптировать?
Можно. Вчера вечером заняться было нечем, и я решил вспомнить что же за срака такая C++ и насколько же срачны C++ программисты. Собственно результаты:
1. Авторы сего кода фанаты STL, и зачем они при этом выбрали wxWidgets, который отрицает STL -- не понятно. Но их мотивы не важны, важно то, что в результате весь код испещрён преобразованиями wxString в std::string и обратно. Причём gcc отказывается проводить эти преобразования так, как написано в сорцах. Я прошёлся по сорцам, втыкая жёсткие K&R преобразования типов от char* к wxChar*. Это решило проблему. (или может создало другую -- не уверен).
2. Платформенно зависимое создание OpenGL контекста. Встречается в файлах gateImage.cpp klsGLCanvas.cpp klsMiniMap.cpp OscopeCanvas.cpp. Я не вдавался в подробности, но, думаю, это не сложно исправить.
3. Вендовые ресурсы. Там грядка иконок, как задумано, складывается в ресурсы приложения. Но, поскольку, используются эти ресурсы в коде путём предусмотренным wxWidgets, это опять же, должно быть, несложно исправить. Теоретически достаточно просто сказать в каком-то там .cpp файле нечто вроде:
Code:
#ifdef UNIX
#include "new.xpm"
#include "open.xpm"
#include "и т.п."
#endif

4. gateImage.cpp -- там наиболее смущающий меня косяк. Не компилируется объявление таблички ивентов, и судя по всему это связано с тем, что с 2006 года wxWidgets несколько сменил API. Я исправил это заменой wxStaticBitmap в объявлении таблички на wxWindow, но весьма сомневаюсь, что это сработает.


11 Aug 2012 23:00
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22422
Location: Silicon Valley
Reply with quote
Post 
bar, да ты крут :o

_________________
:dj: https://mastodon.social/@Shaos


12 Aug 2012 06:56
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Да мне местами просто неописуенно понравилось! :o
Как по содержанию, так и по форме!!! 8)

Что понравилось - не скажу... дабы не вызывать ненужного "бурления говен"... :lol:

bar, а если всё получится - выложишь для наших линуксоидов, чтобы мы действительно
с ними на единую платформу перешли?

(Ну если, конечно, наши линуксоиды не против? :wink: )

_________________
iLavr


Last edited by Lavr on 12 Aug 2012 07:23, edited 1 time in total.



12 Aug 2012 07:05
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Наши будут только рады... :)


12 Aug 2012 07:08
Profile
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Shaos wrote:
bar, да ты крут :o
У меня есть студенческий опыт подобных развлечений. Была такая игрушка icmoria... Со сложной историей. Изначально она была написана парочкой студентов под VAX на древнем-древнем паскале, в котором, как я понимаю, даже речи не шло про указатели или (тем более!) динамическое выделение памяти. Потом другая группа энтузиастов игрушку доработала. Третья группа студентов, прогнала паскалевские сорцы через p2c, получив C'шный вариант. И, наконец, четвёртая группа (в действительности состоявшая лишь из одного человека), портировала результат в *nix на curses. Так вот по сравнению с тем C, C++ и wxWidgets -- это цветочки. =)
Lavr wrote:
bar, а если всё получится - выложишь для наших линуксоидов, чтобы мы действительно
с ними на единую платформу перешли?
Выложу, естественно. Если получится...
С OpenGL всё не так просто оказывается. Они OpenGL используют, чтобы единожды отрисовать картинку в битмап, который затем многократно используется при выводе на экран. И чёй-то мне никак не удаётся найти, как подобное сделать средствами wxWidgets. А если без wxWidgets, то есть следуя девизу: ударим непортабельным кодом, по непортабельному коду... Я, честно говоря, не очень знаю, как это сделать, думаю надо втыкать в libGLU.so, там должно быть, наверное, что-нибудь типа создания опенгл контекста для рисования в ОЗУ.
Или может быть создать wxGLCanvas размерами 0px на 0px, ради получения нормального OpenGL контекста, после чего рисовать в offscreen framebuffer, и потом при помощи glReadPixels выуживать результат...
Или вообще выломать из кода OpenGL к чертям, и вместо того, чтобы описывать кодом как рисуется тот или иной элемент, задавать изображение файликом в каком-нибудь векторном формате.
Или может с опенгл перетащить этот cedar logic на библиотечку cairo, который заточен на 2D графику и на вывод в битмап... Хотя это лишние депендансы на венде.

Короче меня такое неожиданное использование OpenGL отправило с ступор. Мне надо подумать.


12 Aug 2012 10:51
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22422
Location: Silicon Valley
Reply with quote
Post 
А если взять wxWidgets для SDL (я немного погуглил - народ вроде делал) и графику переделать с OpenGL на скрины SDL?

P.S. А код у них действительно безобразный - торомзилово жуткое, легче действительно всё с нуля переписать...

_________________
:dj: https://mastodon.social/@Shaos


12 Aug 2012 11:10
Profile WWW
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Мне для начала очень хочется всё это запустить. Тогда можно будет исследовать дальше дебуггером. Проверяя таким образом свои предположения относительно того, как работает код.

А чтобы по простому запустить, надо идти тем же путём, повторяя шаг в шаг оригинальный код. Правда на *nix не удастся вдруг взять и вызвать что-нибудь класса GetDC, даже несмотря на то, что все библиотеки уже подгружены: все такие вызовы требуют указателя на структурку Display, а нет никакого способа выудить этот указатель из недр wxWidgets. Поэтому я склоняюсь к решению через жопу, в котором роль жопы будет играть второе соединение с X-сервером и соответственно вторая структурка Display, которая будет уже полностью в моём распоряжении.

А в перспективе, думаю, было бы лучше сделать иначе: понаделать FBO -- на каждый объект отрисовки по одному FBO, а результат рисования хранить в ОЗУ как OpenGL идентификатор текстуры. А потом просто текстурировать этими картинками. На более-менее современной видяшке с собственной RAM окажется ппц как быстрая отрисовка, поскольку даже нагружать DMA пересылкой битмапов не придётся, всё будет уже храниться в RAM видяхи. Можно будет достичь 100k fps. :rotate: Но существенней любого fps то, что придётся делать минимум изменений кода (по сравнению с другими вариантами), совершенно кроссплатформенно, и никаких извратов типа второго соединения с сервером, или отрисовка на видяшке, с пересылкой данных туда, потом выкачивания данных обратно на CPU, и потом снова закачивания в видяшку, чтобы получить конечную картинку на экране.
Правда тут один момент... FBO, если память мне не изменяет пойдёт только если в системе OpenGL версии >= 1.2. OGL 1.2 -- это древняя версия, но я чесслово не соображу что древнее: OpenGL 1.2 или Lavr'овская венда '98.


12 Aug 2012 22:43
Profile
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Shaos wrote:
P.S. А код у них действительно безобразный - торомзилово жуткое, легче действительно всё с нуля переписать...
С нуля переписывать надо тогда, когда есть чёткое понимание того, как работает оригинал. То есть надо именно что переписывать, но не писать с нуля. Тогда можно будет не отвлекаясь на стадию подробного проектирования программы, сразу схватиться за кодинг и получить офигенно красивый и продуманный код, которым мог бы гордиться даже Дейкстра, код к которому даже проф. Н. Вирт при всём желании не смог бы придраться.


12 Aug 2012 22:52
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
bar wrote:
С нуля переписывать надо тогда, когда есть чёткое понимание того, как работает оригинал. То есть надо именно что переписывать, но не писать с нуля. Тогда можно будет не отвлекаясь на стадию подробного проектирования программы, сразу схватиться за кодинг и получить офигенно красивый и продуманный код, которым мог бы гордиться даже Дейкстра, код к которому даже проф. Н. Вирт при всём желании не смог бы придраться.

Воооо!!! А я здесь всё время повторяю:"Танцевать лучше от прототипа!"

И вообще - это стиль ВПК СССР - "мы это с3.14здим, разберём, посмотрим
и сделаем неподражаемый свой экземпляр
"... "к которому даже проф.
Н. Вирт при всём желании не смог бы придраться
." :D


PS. Меня немного смущает, Shaos вроде как называл как раз wxWidgets
кросплатформенной приблудой, а весь остальной код Виндавозно-ориентиованным... нет?


PPS. А за OpenGL 1.2 я вам ничего сказать не смогу... :( Потому как
Венда у меня такая правленная-патченная, что и не 98-я она вовсе,
а скорее уж 99_1/3 !
:lol:

_________________
iLavr


12 Aug 2012 23:48
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 235 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 16  Next

Who is online

Users browsing this forum: No registered users and 17 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.