Важная информация

User Tag List

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 21 по 30 из 56

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

  1. #21
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    В пока секретной сборке v06x под Линуксом Вектор стал интернет-вещью. На нем работает веб-сервер, который отдает страничку с интерфейсом, через который можно управлять светодиодом РУС/LAT. Небольшое демо:

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

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

    А вообще, эмпирически - на сколько код в ZPU медленнее выполняется, чем такой же алгоритм, собранный в нативный бинарный код?
    Версия для Z80 была бы быстрее, на сколько (возможно есть какие-то вещи которые лучше ложатся на индексные регистры или работу с массивами от Z80)?
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  2. #22
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    796
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 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 на Векторе мне тоже было бы интересно.
    Больше игр нет

  3. #23
    zx_
    Гость

    По умолчанию

    svofski, ZPU этож java практически получается

  4. #24
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,845
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,824
    Поблагодарили
    1,046 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пару слов тоже хочу написать. Сначала думал, что zpu это интересный, но совершенно бесполезный (даже по ретрокомпьютерным меркам) курьез, а в итоге получилась на удивление неплохая штука. Хотелось бы побыстрее, но и в том виде как есть возможность использования современного компилятора доставляет. Ну и насчет своего "вклада" - думаю никто не сомневается, что все сделал svofski, но я поучаствовал в оптимизации.

  5. #25
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    512 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    а в итоге получилась на удивление неплохая штука.
    и чем?

  6. #26
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,845
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,824
    Поблагодарили
    1,046 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  7. #27
    zx_
    Гость

    По умолчанию

    хе
    This is a ZPU virtual machine written in Intel 8080 assembly. It executes normal ZPU code on a 8080 computer with 64K RAM. The primary target is Vector-06c. It is pretty slow, but allows writing C++ code for a 8080 computer, which is cool. Example projects include visual quicksort demo, a port of Star Trek game and an IoT-style webserver using uIP TCP/IP stack (demo video)

    на железном векторе можно азернет с spi - в дип28 чипы есть
    или вифи - к вектору последовательный порт

  8. #28
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    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

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

    svofski (26.12.2020)

  10. #29
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    796
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 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, сделать интерфейс со стороны Вектора максимально простым и втыкать это в ПУ.
    Больше игр нет

  11. #30
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    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

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

    svofski (26.12.2020)

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Биперная музыка на Векторе-06Ц
    от ivagor в разделе Вектор
    Ответов: 299
    Последнее: 30.06.2023, 21:10
  2. Джойстики на Векторе-06ц
    от svofski в разделе Вектор
    Ответов: 101
    Последнее: 08.06.2023, 19:13
  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

Ваши права

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