User Tag List

Показано с 1 по 10 из 86

Тема: Эмулятор 'Etalon Korvet Emulator' - разработка

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все, я закончил перенос своего кода в вариант эмулятора из репозитория. Пришлось понабивать шишек на ровном месте, но в коце концов все вроде заработало.

    Поскольку своего репозитория у меня нет, прикладываю те файлы, которые я изменил. Их всего 4.

    _main.c - добавлен разбор конфига, ключей, а также стартовый код и опрос сети.
    serial.c - тут, собственно, всеь мой код и лежит.
    korvet.h - добавлены заголовки сетевых подпрограмм и общих переменных.
    korvet.cfg - добавлены параметры конфигурации сети.

    Теперь о важных изменениях.

    1. В конфиг-файл добавлена новая секция [lan], чтобы не путалось с остальными переменными. В секции пока только 3 параметра - ADDR, DEVICE и LOG, потом может быть еще добавим.

    2. Добавлены ключи командной строки:

    Код:
    -s - имя устройства последовательного порта для эмуляции локальной сети
     -n - адрес РМУ в сети (0 для РМП)
     -l - имя файла сетевого протокола, в случае "-l-" (параметр знак минуса) отказ от создания файла протокола
    Это позволяет запускать несколько копий эмулятора, РМУ и РМП, из одного места, не изменяя файл конфигурации.

    3. Сделан полностью асинхронный ввод-вывод, теперь в турборежиме при пассивной сети FPS держится около 3500. Если сетевое устройство в конфиге не описано, то вызов LAN_poll() вообще не занимает процессорного времени - сразу возвращает управление.

    4. Сделана полная поддержка псевдотерминалов для эмуляции последовательного порта. Теперь можно не только общаться с железным корветом, но и соединить 2 эмулятора между собой. Привожу пример такого запуска.

    Стартуем первый эмулятор.

    Код:
    ./kdbg -n0 -s/dev/ptmx -l server.log -a disk/unsort18.kdi -b disk/MIKRDOS3.KDI
    Последовательный порт /dev/ptmx открыт
    Подчиненный псевдотерминал - /dev/pts/2
    Открыт файл сетевого протокола server.log
    Адрес эмулятора в сети - 0
    Driver: ALSA
    Это у нас будет РМП. В качестве последовательного устройства указываем мультиплексор виртуальных терминалов /dev/ptmx. Будет сформирован лог server.log.
    При старте эмулятор указал, что сформирован подчиненный последовательный порт /dev/pts/2. Эта информация нам нужна для запуска второй копии эмулятора.

    Теперь стартуем второй эмулятор

    Код:
    ./kdbg -n2 -s/dev/pts/2 -l client.log
    Открыт файл сетевого протокола client.log
    Адрес эмулятора в сети - 2
    Driver: ALSA
    Это будет РМУ с адресом 2, сетевой лог сохраняется в client.log. В качестве последовательного порта указываем имя подчиненного виртуального терминала, выданное нам первой копией эмулятора.

    Все, сеть из 2 корветов готова. Можно начинать развлекаться. Я потестировал сеть в программах STS и YP - работает вроде без сбоев в обе стороны.

    Для разбора файлов сетевых логов я написал программку, но ее надо немного облагородить, мне ее стыдно выкладывать в первозданном виде. Как доведу до ума - выложу. А вообще формат лога описан в serial.c.

    Моя программа KL также может взаимодействовать с эмулятором по сети через порт подчиненного виртуального терминала. Но требуется некоторая ее доработка. После доработки выложу в соответствующей теме.

    А, и вот еще. Что это за оптимизацию -O7 ты там придумал? Вообще-то официально такой вообще не существует, а неофициально она эквивалентна -O3. Но даже -O3 использовать не рекомендуется - это экспериментальная оптимизация, можно нарваться на совершенно необъяснимые глюки. Хотя оно и дает примерно +500 к FPS.

    Пока вроде все. Прикладываю архив с измененными файлами.
    Вложения Вложения
    Последний раз редактировалось forth32; 02.06.2014 в 15:14.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Athletic Land 4 Korvet
    от esl в разделе Корвет
    Ответов: 2
    Последнее: 20.04.2013, 12:48
  2. Разработка под эмулятором
    от Hacker VBI в разделе Программирование
    Ответов: 33
    Последнее: 14.03.2013, 15:11
  3. Разработка ZXOOM
    от Andrew771 в разделе Игры
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  4. Разработка ZXOOM
    от Andrew771 в разделе Графика
    Ответов: 666
    Последнее: 16.08.2011, 17:22
  5. Разработка БК-0101-10
    от CodeMaster в разделе БК-0010/0011
    Ответов: 61
    Последнее: 21.04.2011, 21:13

Ваши права

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