Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт дек 09, 2025 18:52

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Консольные войны Z0Z5
Автор Сообщение
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
Надо будет еще отчетик после конференции сюда скомпоновать :)
Сообщение Добавлено: Вт дек 09, 2025 14:47
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
:) Теперь Alter Ego есть не только под мой Форт-процессор, но и под Брус-16:
http://totalvacuum.ru/BRUS16/alterego.htm
Изображение
ссылка на изображение
Управление WASDX

Кстати, в оригинал от Дениса Грачева под ZX Spectrum можно сыграть тут: https://viva-games.ru/game/alter-ego
А порт Shiru под NES есть здесь: https://archive.org/details/pouet_71667

А вообще под Брус уже несколько симпатичных игр наштамповали:
https://true-grue.github.io/Brus-16-Apps/brus16.html
Сообщение Добавлено: Пн дек 08, 2025 23:35
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
Накидал на скорую руку эмулятор под эту суровую мужицкую брутальную консоль. :) Оригинальные тесты выглядят примерно так же:
http://totalvacuum.ru/BRUS16/logo.htm
http://totalvacuum.ru/BRUS16/racing.htm
http://totalvacuum.ru/BRUS16/random.htm
В гонках управление стрелками клавиатуры.

Ну и небольшая проба пера, проверка возможности компиляции под сабж:
http://totalvacuum.ru/BRUS16/wolf3d.htm
http://totalvacuum.ru/BRUS16/columns.htm
Управление кнопками WASD
Нижняя игра (columns) взята отсюда: https://github.com/corax89/game_engine_for_esp8266_with_compiler
Там у автора, кстати, самодельный Си.
Сообщение Добавлено: Вт окт 21, 2025 23:46
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
:) Прорекламирую тут: https://github.com/true-grue/Brus-16/
Учебная игровая консоль Брус-16 на базе 16-битного стекового процессора, заточена под FPGA, программируется на Питоне (https://github.com/true-grue/Brus-16/blob/main/docs/dsl_ru.md)

Поиграть онлайн можно здесь: https://true-grue.github.io/Brus-16-Demo/brus16.html
Сообщение Добавлено: Пн окт 13, 2025 22:49
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
Видимо, пора Tang Nano брать в оборот. Не очень смотрится энкодер для HDMI, он же внешний не такой и дорогой, а ресурсы высвобождает, да и греется это все. Но в целом надо бы уже пробовать.
Сообщение Добавлено: Пн окт 13, 2025 20:38
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
Картридж Alter Ego под NES весит 40Kb, но, к сожалению, в чистом виде в Spartan-3E Starter Kit не лезет. :) Там одни только карты уровней (пожаты RLE) весят 11Kb, а еще 8Kb на 2 банка тайлов, а все прочее - код программы. А в Starter Kit лишь 20 блоков BRAM (40Kb), из которых сейчас 9 занимает видеопамять (18Kb), еще 1 блок под системный шрифт (2Kb), в итоге на RAM, код и данные остается 10 блоков BRAM. Код при переходе к Форт-процессору жмется очень хорошо, в отведенные ему 4 блока BRAM влезает спокойно, а вот ресурсы почти не жмутся (тем более, что они уже сжаты). Можно убрать один из 2-х банков тайлов, они между собой отличаются лишь несколькими спрайтами, в NES используется переключение банков для мигания звезд и шевеления воды. Но даже в этому случае на игровые карты остается лишь 4Kb, так что если оставить credits/title/gameover/welldone, то еще влезет 8 уровней из 25. Так что под Starter Kit будет урезанный вариант. Ну либо повторять "в железе" тайловый видеорежим NES, он сильно меньше BRAM требует.
А вот в Tang Nano 9K/20K влезет целиком.
Сообщение Добавлено: Пн окт 13, 2025 20:28
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
:) Порт симпатичной игры, к которой приложили руку два мастодонта (в хорошем смысле этого слова :) ) отечественной демосцены:
http://totalvacuum.ru/BATTLE/alterego.htm

Изображение
ссылка на изображение

Оригинал под ZX Spectrum сделал Денис Грачев:
https://www.retrosouls.net/?page_id=614
А Shiru сделал порт под NES:
https://shiru.untergrund.net/files/src/alter_ego.zip
https://shiru.untergrund.net/files/src/ ... go_src.zip
Именно этот порт и адаптировал, хотя можно было и порт под UzeBox за основу взять.

Пока только в браузере, но будет и в Форт-процессоре, как только до платы с ПЛИС доберусь. Сейчас есть только игровой режим, а все прочие gameover'ы, title'ы и welldone'ы пока отсутствуют. И с палитрой не заморачивался: всё отрисовано в лампово-вырвиглазной фиолетово-бирюзовой ретро-палитре CGA. Управление: wasd - стрелки, x - swap главного героя и его альтер эго. Разрешение мелкое, но можно Ctrl-+ понажимать.

upd. И почти то же самое в Irbis Forth:
http://totalvacuum.ru/IRBIS/alterego.zip
Изображение
ссылка на изображение
Пока черновик, но уже можно играть, управление wasdx
Сообщение Добавлено: Пн сен 08, 2025 14:52
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
:) А вот, например, шахматы в Форт-процессоре:
Изображение
ссылка на изображение
Пока только режим Demo (компьютер vs. компьютер), да и цвета какие попало, но всё это не так важно: главное, что движок avr_umax.c практически с наскока заработал. :)
Оригинал:
https://uzebox.org/wiki/Chess4uzebox - описание
https://github.com/Uzebox/uzebox/tree/master/demos/chess4uzebox - исходники
Сообщение Добавлено: Вт июл 08, 2025 01:34
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
Немного экзотики в ленту: https://dzen.ru/a/Z4o9tG4Y3UMbvVmL
Тут из интересного https://ru.wikipedia.org/wiki/Entex_Adventure_Vision и https://en.wikipedia.org/wiki/Microvision
Entex Adventure Vision примечательна тем, что в ней вместо дисплея использовался столбец из 40 светодиодов и вращающееся зеркало. И да, здесь была монохромная графика 150x40, а процессор 8048 работал на частоте 733KHz. По формальным признакам это серийное игровое изделие на микропроцессоре с какой-никакой графикой. Таким образом, оно обходит в антирейтинге самых неторопливых игровых изделий C64, у которого была частота 1MHz. :)
А в Microvision забавно, что процессор (Intel 8021 или TMS1100) стоял не в консоли, а на картридже. И работал процессор на частоте 100KHz. :) Ну а графика (если ее можно так назвать) всего лишь 16x16 пикселов. :)

Total Vacuum писал(а):
разузнать, какой процессор был в "волк ловит яйца". :)
В интернетах пишут, что в культовой советской игре "Ну, погоди!" был процессор КБ1013ВК1-2, который тактировался от часового кварца 32768Гц. Допускаю, что это самая низкая частота процессора среди всех существовавших когда-либо игровых изделий.

А еще продолговатый китайский тетрис вспомнился
https://www.ixbt.com/live/games/istoriya-i-obzor-portativnoy-videoigry-brick-game-tetris-chernyy-kirpichik-kotoryy-izmenil-mir.html
https://habr.com/ru/articles/767520/
Там какой-то 4-битный процессор от Holtec, точно никто не знает :) HT200, HT943E5, HT443A0 или какой-то еще. И частоту где-то указывают 1МГц, а где-то 4МГц.

Куча игр и не только под разные ретро-платформы в браузере:
https://dtf.ru/retro/91368-biblioteka-retro-igr-s-zapuskom-pryamo-v-brauzere
https://archive.org/details/softwarelibrary
В том числе для совсем уж древних вроде упомянутой выше Entex Adventure Vision: https://archive.org/details/adventurevision_library
Поиграл "на ней" немного в Defender, управление стрелками, стрельба пробелом: https://archive.org/details/advision_Defender_1982_Entex_Industries

:D Там даже Конек-Горбунок есть!
https://archive.org/details/arcade_konek
Сообщение Добавлено: Вт июн 24, 2025 01:06
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
Sotnik писал(а):
Хотелось бы увидеть AVR на 100+ МГц
Зачем? Во-первых, не спортивно. :) А во-вторых, слишком много, тут и пары мегагерц за глаза, более того подозреваю, что и 100KHz вполне хватит, чтобы и Бейсик шустро работал, и игры вроде Super Mario в слайд-шоу не превращались.
А всё потому, что даже медленный процессор зачастую оказывается слишком быстрым, когда дело доходит до общения с периферией: допустим, отправил он байт в условный UART/I2C/SPI/..., а потом (если без софтового буфера) приходится ждать, пока тот закончит передачу и будет готов к приему следующего байта. Да, можно, конечно, аппаратный буфер организовать и утрамбовать туда сразу всё сообщение, но все равно байты наружу уйдут на определенной ооочень медленной по меркам процессора скорости.
Sotnik писал(а):
Какие максимальные частоты для твоих процов в FPGA?
Когда-то давно для 1- и 2-ядерного (2 ядра+общая RAM) было 72MHz. Для варианта с 4 ядрами в кольце было 69MHz, а для 8 ядер частота падала до 55MHz. (https://fforum.winglion.ru/viewtopic.php?p=50696#p50696)
Ну а сейчас вообще не парюсь по поводу тактовой частоты. В платах, которые на руках, в ПЛИС извне заходят частоты:
- Spartan-3E Starter Kit - 50MHz;
- рабочая плата (Spartan-3E) - 20MHz;
- Tang Nano 9K/20K - 27MHz.
В Starter Kit оставил 50MHz, т.к. из нее легко получаются 25MHz, которые нужны для стандартного видеорежима VGA 640x480 (использую его для отрисовки 256x192 с пикселами 2x2). А в Tang Nano 9K/20K всегда ставлю 20MHz, чтобы было 1-в-1 как в рабочей плате, чтобы не перенастраивать постоянно UART, TIMER и т.д.
Sotnik писал(а):
С поправками для всех делителей и таймеров.
Не уловил смысл фразы. Вообще, 72MHz и 8 ядер - это для "тепличных" условий, когда на шине не очень много периферийных устройств, а каждому отдельному ядру не нужно слишком много RAM. Сверху количество ядер ограничено количеством умножителей в ПЛИС (10 шт) и количеством доступных блоков BRAM (20 шт). Да, можно сделать процессор без умножения (у меня есть и такой, вполне достойно смотрится, кстати), а некоторым ядрам не выделять память в BRAM, чтобы обойти эти ограничения, но зачем? Короче, чем больше ядер и периферии, тем сильнее падает частота и увеличивается потребление умножителей и BRAM. А еще есть другие ресурсы ПЛИС (Slices/Flip-flops/LUTs). Тут примерно то же самое: чем больше ядер, чем сложнее периферия, чем толще стеки данных/возвратов в ядрах, тем больше расход этих ресурсов. В любом случае надо смотреть по месту: добавлять там, где не хватает, и что-то убирать/уменьшать, если не лезет. :)
upd. Да, еще момент. В Xilinx ISE есть настройка Project/Design Goals and Strategies. И цифры по максимальной частоте и впихуемости ядер были получены для сценария Balanced. Но еще есть профили Timing Performance, Power Optimization и Minimum Runtime, а можно и свой придумать. Так вот с ними и частота будет другой, и потребление ресурсов. Там целый ворох настроек, пока даже не начинал с этим разбираться. Но почти наверняка и ускорить можно, и утрамбовать.
Сообщение Добавлено: Вт июн 24, 2025 00:39
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
Total Vacuum писал(а):
Sotnik писал(а):
https://habr.com/ru/articles/917156/
Интересная статья (эта и 3 предыдущих про 4004, 4040 и 8008, на которые отсылки в самом начале). Правда 8080 как-то неожиданно слабоват оказался в бенче Dhrystone: всего лишь 0.06 DMIPS (0.02 DMIPS/MHz). У меня даже самый слабый из процессоров будет в несколько раз быстрее на той же частоте. Может, конечно, дело в компиляторе z88dk, но не думаю, что он слабее моего наколенного.
Какие максимальные частоты для твоих процов в FPGA?
С поправками для всех делителей и таймеров. :)

Хотелось бы увидеть AVR на 100+ МГц и сколько таких влезет!
Сообщение Добавлено: Вс июн 22, 2025 01:08
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
Sotnik писал(а):
https://habr.com/ru/articles/917156/
Интересная статья (эта и 3 предыдущих про 4004, 4040 и 8008, на которые отсылки в самом начале). Правда 8080 как-то неожиданно слабоват оказался в бенче Dhrystone: всего лишь 0.06 DMIPS (0.02 DMIPS/MHz). У меня даже самый слабый из процессоров будет в несколько раз быстрее на той же частоте. Может, конечно, дело в компиляторе z88dk, но не думаю, что он слабее моего наколенного.
Сообщение Добавлено: Чт июн 19, 2025 20:58
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
https://habr.com/ru/articles/917156/
Сообщение Добавлено: Ср июн 18, 2025 16:26
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
А примерно так выглядит тот же самый Бейсик, но уже на борту Tang Nano 9K.
Изображение
ссылка на изображение
Периферия, понятное дело, здесь совсем другая. Сейчас прикручены только GPIO, TIMER и UART с базовыми адресами 0x8000, 0x9000 и 0xA000 соответственно. Делителя частоты по адресу 0x7FFF нет, работает на фиксированной 20MHz, оператора at тоже нет, а ввод/вывод через терминал. Для иллюстрации добавлены led и delay, хотя вполне можно было обойтись poke/peek через регистры периферии. "На кассету" "зашита" дефолтная однократно пробегающая по светодиодам волна, но можно поменять на тест с ферзями (закомментировать одну и раскомментировать другую строку под char tape [1024] = в файле FIRMWARE\BASIC\basic.c) или любой другой свой тест, пересобирается через rebuild.bat.
:) Пока сырое, но пусть будет:
http://totalvacuum.ru/UB/tbasic.zip
Сообщение Добавлено: Ср июн 11, 2025 12:21
  Заголовок сообщения:  Re: Консольные войны Z0Z5  Ответить с цитатой
Да, забыл :) Если у кого есть Spartan-3E Starter Kit, VGA-монитор (еле нашел такой) и PS/2-клавиатура (тоже достаточно раритетная вещь, как оказалось), то можно вживую пощупать Бейсик: http://totalvacuum.ru/UB/basic.bit
За основу взята грамматика из Tiny BASIC (https://en.wikipedia.org/wiki/Tiny_BASIC), пока реализованы операторы:
print выражение
print "строка"
if выражение операция-сравнения выражение оператор
goto метка
let переменная = выражение
gosub метка
return
end
Плюс добавлены оператор poke адрес значение и функция peek адрес. И еще at x y, чтобы двигать "курсор".
Редактор понимает команды clear, list и run. А кроме того имитируется сохранение/загрузка текущей программы по командам save/load: пока код программы сохраняется/читается в/из массива tape (это как регистр М в калькуляторе, только гигантский :) ), но потом можно будет сделать, например, запись на SD-карту.
Процессор стартует на частоте 1.5MHz, но можно поменять прямо на лету. Например, чтобы поставить 50MHz/512=100kHz, надо ввести 2 строки, нажимая после каждой <enter>
Код:
poke 32767 511
run
А дальше либо загружаем "с кассеты" командой load сохраненную ранее программу, либо clear и вводим новую.
Сообщение Добавлено: Вс июн 08, 2025 23:08

Часовой пояс: UTC + 3 часа [ Летнее время ]


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB