Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт дек 12, 2017 7:25 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 21 сообщение ]  На страницу 1 2 След.
Автор Сообщение
СообщениеДобавлено: Сб мар 10, 2012 2:16 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 751
Появилась идея сделать программу для моделирования поведения логических схем. Сделал несколько файлов со схемами, их можно открывать и запускать на выполнение. Программа до конца еще не сделана, а именно нет возможности редактировать и создавать новые схемы (файлы пока можно редактировать в текстовом виде). Программа предназначена в основном для образовательных целей, что бы можно было понять как работают логические элементы при их объединении в различных вариантах.
Детали можно почитать в документации в папке docs, хотя описано не все.


Вложения:
Комментарий к файлу: внешний вид программы
about.png
about.png [ 21.94 КБ | 4428 просмотров ]
Комментарий к файлу: бинарник и исходники
log_el.zip [164.63 КБ]
208 скачиваний
Вернуться к началу
СообщениеДобавлено: Сб мар 10, 2012 2:20 pm 
А можно узнать почему у тебя уже вторая программа в темных тонах? Я ничего против авторской задумки не имею, но лично мои глаза при работе с черным фоном быстрее устают, чем когда на белом фоне рисуется все.


Вернуться к началу
   
СообщениеДобавлено: Сб мар 10, 2012 8:00 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 751
Mario писал(а):
А можно узнать почему у тебя уже вторая программа в темных тонах?

Просто мне кажется что от светлых тонов на мониторах будет быстрее выгорать люминофор :) На современные мониторы это врятли распространяется, но привычка писать темные программы осталась еще с DOS-вских времен.


Вернуться к началу
СообщениеДобавлено: Сб мар 10, 2012 8:16 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
схемы разводить, кстати удобно на темном фоне. Хотя было бы классно, если бы была возможность выбрать или "темную" или "светлую" темы.


Вернуться к началу
СообщениеДобавлено: Сб мар 10, 2012 8:35 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Да и цветовую гамму приложения в целом. Иначе получается несколько вырвиглазно. За прогу - респект!


Вернуться к началу
СообщениеДобавлено: Сб мар 10, 2012 9:34 pm 
Не в сети
Moderator

Зарегистрирован: Чт апр 08, 2010 8:11 pm
Сообщения: 265
На ЖК мониторах чёрный цвет самый энергоёмкий...на ЭЛТ на оборот...


Вернуться к началу
СообщениеДобавлено: Сб мар 10, 2012 9:39 pm 
popovpa писал(а):
на ЭЛТ на оборот...

"На оборот" это как? На задней крышке что ли?


Вернуться к началу
   
СообщениеДобавлено: Сб мар 10, 2012 10:34 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Игорь, у тебя просто призвание браться за невозможные вещи.
И делать их!

Совет: надо сразу подумать о совместимости с имеющимися программами, особенно на уровне библиотек элементов.
Иначе зазюзюкаешься каждую микросхему забивать в отдельный файл.


Вернуться к началу
СообщениеДобавлено: Сб мар 10, 2012 10:50 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Я так понимаю, что это эмулирование именно логических элементов. Мне нравится Logisim, он хранит свои данные вот так:
Спойлер: Показать
Код:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="2.7.1" version="1.0">
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<lib desc="#Wiring" name="0"/>
  <lib desc="#Gates" name="1"/>
  <lib desc="#Plexers" name="2"/>
  <lib desc="#Arithmetic" name="3"/>
  <lib desc="#Memory" name="4">
    <tool name="ROM">
      <a name="contents">addr/data: 8 8
0
</a>
    </tool>
  </lib>
  <lib desc="#I/O" name="5"/>
  <lib desc="#Base" name="6">
    <tool name="Text Tool">
      <a name="text" val=""/>
      <a name="font" val="SansSerif plain 12"/>
      <a name="halign" val="center"/>
      <a name="valign" val="base"/>
    </tool>
  </lib>
  <main name="main"/>
  <options>
    <a name="gateUndefined" val="ignore"/>
    <a name="simlimit" val="1000"/>
    <a name="simrand" val="0"/>
  </options>
  <mappings>
    <tool lib="6" map="Button2" name="Menu Tool"/>
    <tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
    <tool lib="6" map="Button3" name="Menu Tool"/>
  </mappings>
  <toolbar>
    <tool lib="6" name="Poke Tool"/>
    <tool lib="6" name="Edit Tool"/>
    <tool lib="6" name="Text Tool">
      <a name="text" val=""/>
      <a name="font" val="SansSerif plain 12"/>
      <a name="halign" val="center"/>
      <a name="valign" val="base"/>
    </tool>
    <sep/>
    <tool lib="0" name="Pin">
      <a name="tristate" val="false"/>
    </tool>
    <tool lib="0" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="labelloc" val="east"/>
    </tool>
    <tool lib="1" name="NOT Gate"/>
    <tool lib="1" name="AND Gate"/>
    <tool lib="1" name="OR Gate"/>
  </toolbar>
  <circuit name="main">
    <a name="circuit" val="main"/>
    <a name="clabel" val="8"/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(190,420)" to="(230,420)"/>
     <wire from="(230,60)" to="(230,100)"/>
    <wire from="(150,40)" to="(240,40)"/>
    <wire from="(280,50)" to="(290,50)"/>
    <wire from="(350,260)" to="(410,260)"/>
    <comp lib="0" loc="(100,270)" name="Clock"/>
    <comp lib="1" loc="(570,120)" name="Controlled Buffer">
      <a name="facing" val="south"/>
      <a name="width" val="8"/>
      <a name="control" val="left"/>
    </comp>
    <comp lib="4" loc="(160,330)" name="Counter">
      <a name="width" val="3"/>
      <a name="max" val="0x4"/>
    </comp>
    <comp lib="0" loc="(660,310)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="8"/>
      <a name="tristate" val="false"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(740,180)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="8"/>
      <a name="tristate" val="false"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="1" loc="(680,240)" name="NOT Gate"/>
    <comp lib="2" loc="(150,430)" name="Demultiplexer">
      <a name="selloc" val="tr"/>
      <a name="select" val="3"/>
    </comp>
    <comp lib="6" loc="(167,298)" name="Text">
      <a name="text" val="Счетчик команд"/>
    </comp>
    <comp lib="6" loc="(686,151)" name="Text">
      <a name="text" val="Сдвиговый регистр"/>
    </comp>
    <comp lib="2" loc="(260,170)" name="Multiplexer">
      <a name="width" val="8"/>
      <a name="enable" val="false"/>
    </comp>
    <comp lib="0" loc="(620,550)" name="Pin">
      <a name="output" val="true"/>
      <a name="width" val="8"/>
      <a name="tristate" val="false"/>
    </comp>
    <comp lib="2" loc="(700,560)" name="Multiplexer">
      <a name="width" val="8"/>
      <a name="enable" val="false"/>
    </comp>
    <comp lib="4" loc="(530,180)" name="RAM"/>
    <comp lib="1" loc="(410,540)" name="OR Gate">
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="1" loc="(480,410)" name="NOT Gate">
      <a name="facing" val="north"/>
    </comp>
    <comp lib="2" loc="(710,410)" name="Multiplexer">
      <a name="width" val="8"/>
      <a name="enable" val="false"/>
    </comp>
    <comp lib="1" loc="(370,410)" name="OR Gate">
      <a name="inputs" val="3"/>
    </comp>
    <comp lib="0" loc="(60,240)" name="Pin">
      <a name="tristate" val="false"/>
    </comp>
    <comp lib="0" loc="(220,100)" name="Bit Extender">
      <a name="in_width" val="1"/>
      <a name="out_width" val="8"/>
    </comp>
    <comp lib="1" loc="(380,110)" name="OR Gate">
      <a name="width" val="8"/>
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="0" loc="(280,130)" name="Pin">
      <a name="facing" val="south"/>
      <a name="width" val="8"/>
      <a name="tristate" val="false"/>
    </comp>
    <comp lib="4" loc="(130,180)" name="Register"/>
    <comp lib="1" loc="(330,290)" name="AND Gate">
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="0" loc="(750,360)" name="Pin">
      <a name="facing" val="south"/>
      <a name="width" val="8"/>
      <a name="tristate" val="false"/>
    </comp>
    <comp lib="3" loc="(280,50)" name="Adder"/>
    <comp lib="0" loc="(760,290)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="8"/>
      <a name="tristate" val="false"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="6" loc="(99,147)" name="Text">
      <a name="text" val="Регистр PC"/>
    </comp>
    <comp lib="4" loc="(670,180)" name="Shift Register">
      <a name="width" val="8"/>
      <a name="length" val="2"/>
    </comp>
  </circuit>
</project>


Вернуться к началу
СообщениеДобавлено: Пн мар 12, 2012 2:05 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 751
XVilka писал(а):
схемы разводить, кстати удобно на темном фоне. Хотя было бы классно, если бы была возможность выбрать или "темную" или "светлую" темы.

когда будет свободное время надо будет добавить выбор цвета, пока что нужно добавить инструменты для редактирования
art_zh писал(а):
Совет: надо сразу подумать о совместимости с имеющимися программами, особенно на уровне библиотек элементов. Иначе зазюзюкаешься каждую микросхему забивать в отдельный файл.

думаю что сделать конвертирование можно, но вот будут ли при этом совпадать пропорции элементов. В этом может быть основная проблема с переносом
SoUrcerer писал(а):
Я так понимаю, что это эмулирование именно логических элементов. Мне нравится Logisim, он хранит свои данные вот так:

посмотрел в интернете эту программу, интересная


Вернуться к началу
СообщениеДобавлено: Чт мар 15, 2012 12:56 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 751
Сделал небольшие доработки программы и отправил на svn ревизия 2462.
Исправил небольшую ошибку с надписями.
Добавил кнопки для рисования и стирания проводов. Провода рисуются по пикселям (клеткам), хотя конечно лучше было бы если рисовалось линиями, но пока нет времени на эксперименты.


Вернуться к началу
СообщениеДобавлено: Чт мар 15, 2012 10:20 pm 
Не в сети

Зарегистрирован: Пн мар 27, 2006 6:33 am
Сообщения: 542
IgorA писал(а):
посмотрел в интернете эту программу, интересная

Особенно использование во "всевозможных" курсах обучения
логики и созданию CPU. (поиск "Logisim circ"), но по моему
"песочница" Javы для него "несколько" обременительна.

P.S. Пожелание у пользователя должна быть возможность нарастить функционал,
например используя, простейший язык программирования типа Лого.
Самому близка и интересна эта тематика, как приложение сил прогера и пользователя.


Вернуться к началу
СообщениеДобавлено: Чт мар 22, 2012 6:09 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 751
Делал несколько обновлений программы в ревизиях 2482 и 2487 (добавил курсоры).
Обнаружил ошибку предположительно в функции pole_cell_delete. Из-з чего возможны глюки при сохранении и при интенсивном редактировании схем.
Kopa писал(а):
P.S. Пожелание у пользователя должна быть возможность нарастить функционал, например используя, простейший язык программирования типа Лого.

Надо нарастить программу другими функциями, тогда и за Лого можно будет взятся. Пока что работа всех элементов задается таблицами, а это не удобно, когда у элемента много входных ног.


Нашел эту ошибку не там где думал а в другой функции, скоро исправлю на svn.


Вернуться к началу
СообщениеДобавлено: Чт мар 29, 2012 11:46 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 751
В рев. 2523 добавил открытие цветов из ini файла
Пока не все цвета можно задавать, только основные
Файл bat не копирует в папку bin файл ini, потому по умолчанию цвета будут старые.


Вернуться к началу
СообщениеДобавлено: Чт мар 29, 2012 11:54 pm 
В качестве задела на будущее было бы хорошо иметь возможность увеличить масштаб. Если не произвольно, то хотя бы в целое число раз. Да даже в 2,4,8,16 уже для большинства случаев хватит. Не у всех идеальное зрение, но даже у тех кого оно хорошее спустя часы работы глаза устают, а увеличение масштаба позволяет меньше напрягать глаза.

UPD Упс, я был не внимателен. Масштабирование уже есть. Меня смутило отсутствие скроллбаров.


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

Часовой пояс: UTC+03:00


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

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


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB