User Tag List

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

Тема: ZPU на Векторе

Комбинированный просмотр

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

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,309
    Спасибо Благодарностей отдано 
    1,034
    Спасибо Благодарностей получено 
    819
    Поблагодарили
    490 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    А вообще, эмпирически - на сколько код в ZPU медленнее выполняется, чем такой же алгоритм, собранный в нативный бинарный код?
    По производительности есть смысл сравнивать с Бейсиком. Мы сравнивали на примере Мандельброта и Эратосфена. ZPU побеждает. Предположительно за счет того, что Бейсик на Векторе не умеет в целые. Реализацию квиксорта на бейсике я бы посмотрел.

    Сравнивать с собранным нативным кодом трудно по причине отсуствия того, чем собирать нативный код под 8080. Я знаю, что ACK вполне умеет собирать под 8080, но пока руки не дошли его завести. В общем не надо быть ракетным хирургом, чтобы предсказать, что нативный код с эмулируемым никто не перепутает =) Сравнить было бы интересно еще и компактность.

    Я не спец по Z80, но кажется у него много дополнительных регистров. Благодаря дополнительным регистрам версия для Z80 может быть сделана ощутимо быстрее. У ZPU всего два хардовых регистра -- SP и PC. На 8080 приходится их все время класть и доставать из памяти, что конечно же медленно.

    Цитата Сообщение от Error404 Посмотреть сообщение
    Делали с b2m UIP на вполне реальной RTL8019AS (эмулируется в моем эмуляторе и башкирии). Раз тут фишка в виртуальной машине ZPU (я правильно понимаю - там что-то вида интерпретатора байткода? который можно собирать gcc), то почему бы просто не взять те модули (там есть и собственно эмуляция устройства 8019 - на TAP-адаптер, т.е. через бридж можно штатно ходить в этот эмулятор по IP откуда угодно из Инета, и модуль для драйвера uIP есть).
    Да, почему бы просто не взять. А где бы на это посмотреть?

    Это немного оффтоп в этой теме, но когда-нибудь увидеть FUZIX на Векторе мне тоже было бы интересно.
    Больше игр нет

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,397
    Спасибо Благодарностей отдано 
    765
    Спасибо Благодарностей получено 
    2,369
    Поблагодарили
    1,318 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    и чем?
    И имеющимися примерами работы (для uip просто нет альтернатив на векторе) и потенциальными возможностями.

    Цитата Сообщение от svofski Посмотреть сообщение
    Реализацию квиксорта на бейсике я бы посмотрел.
    Проблема с рекурсией, если на basic 2.5, то нужно изворачиваться.

  4. #3

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,309
    Спасибо Благодарностей отдано 
    1,034
    Спасибо Благодарностей получено 
    819
    Поблагодарили
    490 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Проблема с рекурсией, если на basic 2.5, то нужно изворачиваться.
    Рекурсивный алгоритм превращается в итеративный с помощью стека, а стек делается массивом. Но выразительные средства классического бейсика для этого крайне плохо подходят.

    - - - Добавлено - - -

    zx_, это похоже на jvm, тоже стековая машина. Но ZPU проще. Он хоть и софтовый, но разрабатывался для запихивания в уголок маленькой fpga и даже 8080 может его эмулировать с терпимой скоростью, хотя в этом есть что-то от Speed 3.

    - - - Добавлено - - -

    Error404, спасибо! Загляну в эмуляцию RTL8019AS.

    uIP собирается HiTech-C для Z80? Утверждается, что FUZIX собирается ACK-ом для 8080, но это надо сильно запариться, чтобы проверить.

    Заглянул чуть чуть в драйвер uIP. Лучше бы конечно спрятать от Вектора все эти потроха, незачем ему возиться с тьмой регистров, даже если это будет не ZPU, а нативный код, все равно лишнее это. Есть два варианта: либо через ПУ перекачиваются пакеты байт за байтом (как сейчас у меня в эмуляторе), либо ethernet становится как второй кваз и буфер отображается в окно памяти. Первый проще, можно сделать систему на основе verilog-ethernet, сделать интерфейс со стороны Вектора максимально простым и втыкать это в ПУ.
    Больше игр нет

  5. #4

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    uIP собирается HiTech-C для Z80? Утверждается, что FUZIX собирается ACK-ом для 8080, но это надо сильно запариться, чтобы проверить.
    Да, я использовал HiTech-C для Z80 для uIP и для UZIX (не FUZIX). Компилер не самый свершенный (если сравнивать с современными работающими на PC), но из тех что работают на Z80 - лучший. Но он например не осиливает сложные дефайны, из-за чего мне пришлось остановиться на uIP v0.9, т.к. в 1.0 Дункель вместо православно-посконного case (который по сути и есть его псевдомультизадачность в uIP и Contiki) присочинил квазисокеты и квазитреды на дефайнах, слишком сложных для нормального человека и компилятора.
    FUZIX вроде же собирается SDCC определенной промежуточной версии с определенными фиксами? ACK для меня вообще темная лошадка, вроде он есть у меня, но никаких проектов на нем не видел.

    Цитата Сообщение от svofski Посмотреть сообщение
    Заглянул чуть чуть в драйвер uIP. Лучше бы конечно спрятать от Вектора все эти потроха, незачем ему возиться с тьмой регистров
    Большое количество регистров используется один раз при инициализации драйвера, а дальше только чтение статуса и чтение-запись кольцевого буфера, которая управляется очень небольшим количеством регистров. Строго говоря, все эти процедуру вообще можно вынести в движок ZPU, и вызывать их с одним-двумя параметрами, как это наверняка аналогично сделано и для консоли. Ну т.е. драйвер сетевухи подключать к движку, а не компилить целиком в ZPU-байткод (в нем только 3 вызова: init,send,get - какие и нужны для uIP)
    Последний раз редактировалось Error404; 26.12.2020 в 19:04.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

    Этот пользователь поблагодарил Error404 за это полезное сообщение:

    svofski(26.12.2020)

  6. #5

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,309
    Спасибо Благодарностей отдано 
    1,034
    Спасибо Благодарностей получено 
    819
    Поблагодарили
    490 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    квазисокеты и квазитреды на дефайнах, слишком сложных для нормального человека и компилятора.
    Это точно. Сатанинское изобретение.
    Больше игр нет

  7. #6

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Да, почему бы просто не взять. А где бы на это посмотреть?
    Вот тут исходники:
    - эмуляция RTL8019AS
    - обслуга Ethernet-L2-TAP (Pascal/Windows, но в целом понятно чокак, я на Винде использовал TAP-адаптер от OpenVPN - он при желании отдельно ставится)
    - uIP через RTL8019AS - в модуле etherdev.* в zip-e

    RTL8019AS была в свое время выбрана т.к. кроме того что это ISA-адаптер (и до сих пор продается на Али как в чипах так и девбордой), оно еще широко распространено в мире 8-бит, например на MSX на этом чипе выпускались картриджи сети, и была кучка софта, который b2m помнится даже запускал в своем эмуляторе в режиме MSX (в моем только Орион) и оно работало вот так вот через TAP

    - - - Добавлено - - -

    Логика такая: из пакета OpenVPN создается (инсталлится) TAP-адаптер, из этого ТАР-адаптера и физического адаптера средствами ОС (я использовал винду) создается bridge (мост), на котором назначается IP (через который Винда ходит в Инет, пускай и далее через NAT). В эмуляторе указывается использовать TAP-адаптер в качестве сетевой платы (это в Ethernet-L2-TAP), и на нем ставится IP из той же подсети, что и хостовая Винда. Сразу эмулятору становятся доступны все хосты в локальной подсети в обе стороны (клиент-сервер), а уж Инет сильно зависит там как настроено - изнутри наружу клиентами пойдет нормально, а обратно (если в эмуле запускать какой-то сервер слушающий IP), то тут уже сложнее схема, но в принципе реализуемо.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

    Этот пользователь поблагодарил Error404 за это полезное сообщение:

    svofski(26.12.2020)

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

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

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

Похожие темы

  1. Биперная музыка на Векторе-06Ц
    от ivagor в разделе Вектор
    Ответов: 352
    Последнее: 29.07.2025, 19:04
  2. Джойстики на Векторе-06ц
    от svofski в разделе Вектор
    Ответов: 104
    Последнее: 04.07.2025, 15:57
  3. Какой игры не хватает на векторе?
    от ivagor в разделе Вектор
    Ответов: 56
    Последнее: 24.02.2017, 08:35
  4. Картинки демок Amstrad на векторе
    от yur в разделе Вектор
    Ответов: 13
    Последнее: 14.03.2016, 08:25
  5. Катинки С64 на Векторе
    от yur в разделе Вектор
    Ответов: 6
    Последнее: 13.03.2016, 15:40

Ваши права

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