| Автор |
Сообщение |
|
|
| |
Заголовок сообщения: |
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
:) Теперь Alter Ego есть не только под мой Форт-процессор, но и под Брус-16: [url]http://totalvacuum.ru/BRUS16/alterego.htm[/url] [img]http://totalvacuum.ru/BRUS16/alterego.png[/img] [url=http://totalvacuum.ru/BRUS16/alterego.png]ссылка на изображение[/url] Управление WASDX
Кстати, в оригинал от Дениса Грачева под ZX Spectrum можно сыграть тут: [url]https://viva-games.ru/game/alter-ego[/url] А порт Shiru под NES есть здесь: [url]https://archive.org/details/pouet_71667[/url]
А вообще под Брус уже несколько симпатичных игр наштамповали: [url]https://true-grue.github.io/Brus-16-Apps/brus16.html[/url]
|
|
|
 |
Добавлено: Пн дек 08, 2025 23:35 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Консольные войны Z0Z5 |
 |
|
|
|
|
 |
Добавлено: Вт окт 21, 2025 23:46 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Консольные войны Z0Z5 |
 |
|
|
|
|
 |
Добавлено: Пн окт 13, 2025 22:49 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Консольные войны Z0Z5 |
 |
|
|
Видимо, пора Tang Nano брать в оборот. Не очень смотрится энкодер для HDMI, он же внешний не такой и дорогой, а ресурсы высвобождает, да и греется это все. Но в целом надо бы уже пробовать.
Видимо, пора 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 влезет целиком.
Картридж 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.ziphttps://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
:) Порт симпатичной игры, к которой приложили руку два мастодонта (в хорошем смысле этого слова :) ) отечественной демосцены: [url]http://totalvacuum.ru/BATTLE/alterego.htm[/url]
[img]http://totalvacuum.ru/BATTLE/alterego.jpg[/img] [url=http://totalvacuum.ru/BATTLE/alterego.jpg]ссылка на изображение[/url]
Оригинал под ZX Spectrum сделал [url=https://www.retrosouls.net][b]Денис Грачев[/b][/url]: [url]https://www.retrosouls.net/?page_id=614[/url] А [url=https://shiru.untergrund.net/aboutme.shtml][b]Shiru[/b][/url] сделал порт под NES: https://shiru.untergrund.net/files/src/alter_ego.zip https://shiru.untergrund.net/files/src/alter_ego_src.zip Именно этот порт и адаптировал, хотя можно было и порт под [url=https://www.uzebox.org/wiki/Alter_Ego]UzeBox[/url] за основу взять.
Пока только в браузере, но будет и в Форт-процессоре, как только до платы с ПЛИС доберусь. Сейчас есть только игровой режим, а все прочие gameover'ы, title'ы и welldone'ы пока отсутствуют. И с палитрой не заморачивался: всё отрисовано в лампово-вырвиглазной фиолетово-бирюзовой ретро-палитре CGA. Управление: wasd - стрелки, x - swap главного героя и его альтер эго. Разрешение мелкое, но можно Ctrl-+ понажимать.
upd. И почти то же самое в Irbis Forth: [url]http://totalvacuum.ru/IRBIS/alterego.zip[/url] [img]http://totalvacuum.ru/IRBIS/alterego.jpg[/img] [url=http://totalvacuum.ru/IRBIS/alterego.jpg]ссылка на изображение[/url] Пока черновик, но уже можно играть, управление 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 - исходники
:) А вот, например, шахматы в Форт-процессоре: [img]http://totalvacuum.ru/BATTLE/chess.jpg[/img] [url=http://totalvacuum.ru/BATTLE/chess.jpg]ссылка на изображение[/url] Пока только режим Demo (компьютер vs. компьютер), да и цвета какие попало, но всё это не так важно: главное, что движок avr_umax.c практически с наскока заработал. :) Оригинал: [url]https://uzebox.org/wiki/Chess4uzebox[/url] - описание [url]https://github.com/Uzebox/uzebox/tree/master/demos/chess4uzebox[/url] - исходники
|
|
|
 |
Добавлено: Вт июл 08, 2025 01:34 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Консольные войны Z0Z5 |
 |
|
Немного экзотики в ленту: https://dzen.ru/a/Z4o9tG4Y3UMbvVmLТут из интересного https://ru.wikipedia.org/wiki/Entex_Adventure_Vision и https://en.wikipedia.org/wiki/MicrovisionEntex 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.htmlhttps://habr.com/ru/articles/767520/Там какой-то 4-битный процессор от Holtec, точно никто не знает  HT200, HT943E5, HT443A0 или какой-то еще. И частоту где-то указывают 1МГц, а где-то 4МГц. Куча игр и не только под разные ретро-платформы в браузере: https://dtf.ru/retro/91368-biblioteka-retro-igr-s-zapuskom-pryamo-v-brauzerehttps://archive.org/details/softwarelibraryВ том числе для совсем уж древних вроде упомянутой выше Entex Adventure Vision: https://archive.org/details/adventurevision_libraryПоиграл "на ней" немного в Defender, управление стрелками, стрельба пробелом: https://archive.org/details/advision_Defender_1982_Entex_Industries Там даже Конек-Горбунок есть! https://archive.org/details/arcade_konek
Немного экзотики в ленту: [url]https://dzen.ru/a/Z4o9tG4Y3UMbvVmL[/url] Тут из интересного [url]https://ru.wikipedia.org/wiki/Entex_Adventure_Vision[/url] и [url]https://en.wikipedia.org/wiki/Microvision[/url] Entex Adventure Vision примечательна тем, что в ней вместо дисплея использовался столбец из 40 светодиодов и вращающееся зеркало. И да, здесь была монохромная графика 150x40, а процессор 8048 работал на частоте 733KHz. По формальным признакам это серийное игровое изделие на микропроцессоре с какой-никакой графикой. Таким образом, оно обходит в антирейтинге самых неторопливых игровых изделий C64, у которого была частота 1MHz. :) А в Microvision забавно, что процессор (Intel 8021 или TMS1100) стоял не в консоли, а на картридже. И работал процессор на частоте 100KHz. :) Ну а графика (если ее можно так назвать) всего лишь 16x16 пикселов. :)
[quote="Total Vacuum"]разузнать, какой процессор был в "волк ловит яйца". :)[/quote]В интернетах пишут, что в культовой советской игре [url=https://ru.wikipedia.org/wiki/%D0%9D%D1%83,_%D0%BF%D0%BE%D0%B3%D0%BE%D0%B4%D0%B8!_(%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B8%D0%B3%D1%80%D0%B0)]"Ну, погоди!"[/url] был процессор КБ1013ВК1-2, который тактировался от часового кварца 32768Гц. Допускаю, что это самая низкая частота процессора среди всех существовавших когда-либо игровых изделий.
А еще продолговатый китайский тетрис вспомнился [url]https://www.ixbt.com/live/games/istoriya-i-obzor-portativnoy-videoigry-brick-game-tetris-chernyy-kirpichik-kotoryy-izmenil-mir.html[/url] [url]https://habr.com/ru/articles/767520/[/url] Там какой-то 4-битный процессор от Holtec, точно никто не знает :) HT200, HT943E5, HT443A0 или какой-то еще. И частоту где-то указывают 1МГц, а где-то 4МГц.
Куча игр и не только под разные ретро-платформы в браузере: [url]https://dtf.ru/retro/91368-biblioteka-retro-igr-s-zapuskom-pryamo-v-brauzere[/url] [url]https://archive.org/details/softwarelibrary[/url] В том числе для совсем уж древних вроде упомянутой выше Entex Adventure Vision: [url]https://archive.org/details/adventurevision_library[/url] Поиграл "на ней" немного в Defender, управление стрелками, стрельба пробелом: [url]https://archive.org/details/advision_Defender_1982_Entex_Industries[/url]
:D Там даже Конек-Горбунок есть! [url]https://archive.org/details/arcade_konek[/url]
|
|
|
 |
Добавлено: Вт июн 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, а можно и свой придумать. Так вот с ними и частота будет другой, и потребление ресурсов. Там целый ворох настроек, пока даже не начинал с этим разбираться. Но почти наверняка и ускорить можно, и утрамбовать.
[quote="Sotnik"]Хотелось бы увидеть AVR на 100+ МГц[/quote]Зачем? Во-первых, не спортивно. :) А во-вторых, слишком много, тут и пары мегагерц за глаза, более того подозреваю, что и 100KHz вполне хватит, чтобы и Бейсик шустро работал, и игры вроде Super Mario в слайд-шоу не превращались. А всё потому, что даже медленный процессор зачастую оказывается слишком быстрым, когда дело доходит до общения с периферией: допустим, отправил он байт в условный UART/I2C/SPI/..., а потом (если без софтового буфера) приходится ждать, пока тот закончит передачу и будет готов к приему следующего байта. Да, можно, конечно, аппаратный буфер организовать и утрамбовать туда сразу всё сообщение, но все равно байты наружу уйдут на определенной ооочень медленной по меркам процессора скорости. [quote="Sotnik"]Какие максимальные частоты для твоих процов в FPGA?[/quote]Когда-то давно для 1- и 2-ядерного (2 ядра+общая RAM) было 72MHz. Для варианта с 4 ядрами в кольце было 69MHz, а для 8 ядер частота падала до 55MHz. ([url]https://fforum.winglion.ru/viewtopic.php?p=50696#p50696[/url]) Ну а сейчас вообще не парюсь по поводу тактовой частоты. В платах, которые на руках, в ПЛИС извне заходят частоты: - 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 и т.д. [quote="Sotnik"]С поправками для всех делителей и таймеров.[/quote]Не уловил смысл фразы. Вообще, 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+ МГц и сколько таких влезет!
[quote="Total Vacuum"][quote="Sotnik"]https://habr.com/ru/articles/917156/[/quote]Интересная статья (эта и 3 предыдущих про 4004, 4040 и 8008, на которые отсылки в самом начале). Правда 8080 как-то неожиданно слабоват оказался в бенче Dhrystone: всего лишь 0.06 DMIPS (0.02 DMIPS/MHz). У меня даже самый слабый из процессоров будет в несколько раз быстрее на той же частоте. Может, конечно, дело в компиляторе z88dk, но не думаю, что он слабее моего наколенного.[/quote] Какие максимальные частоты для твоих процов в 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, но не думаю, что он слабее моего наколенного.
[quote="Sotnik"]https://habr.com/ru/articles/917156/[/quote]Интересная статья (эта и 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
А примерно так выглядит тот же самый Бейсик, но уже на борту Tang Nano 9K. [img]http://totalvacuum.ru/UB/tbasic.jpg[/img] [url=http://totalvacuum.ru/UB/tbasic.jpg]ссылка на изображение[/url] Периферия, понятное дело, здесь совсем другая. Сейчас прикручены только GPIO, TIMER и UART с базовыми адресами 0x8000, 0x9000 и 0xA000 соответственно. Делителя частоты по адресу 0x7FFF нет, работает на фиксированной 20MHz, оператора [b]at[/b] тоже нет, а ввод/вывод через терминал. Для иллюстрации добавлены [b]led[/b] и [b]delay[/b], хотя вполне можно было обойтись [b]poke[/b]/[b]peek[/b] через регистры периферии. "На кассету" "зашита" дефолтная однократно пробегающая по светодиодам волна, но можно поменять на тест с ферзями (закомментировать одну и раскомментировать другую строку под char tape [1024] = в файле FIRMWARE\BASIC\basic.c) или любой другой свой тест, пересобирается через rebuild.bat. :) Пока сырое, но пусть будет: [url]http://totalvacuum.ru/UB/tbasic.zip[/url]
|
|
|
 |
Добавлено: Ср июн 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 меткаreturnendПлюс добавлены оператор 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 и вводим новую.
Да, забыл :) Если у кого есть Spartan-3E Starter Kit, VGA-монитор (еле нашел такой) и PS/2-клавиатура (тоже достаточно раритетная вещь, как оказалось), то можно вживую пощупать Бейсик: [url]http://totalvacuum.ru/UB/basic.bit[/url] За основу взята грамматика из Tiny BASIC ([url]https://en.wikipedia.org/wiki/Tiny_BASIC[/url]), пока реализованы операторы: [b]print выражение[/b] [b]print "строка"[/b] [b]if выражение операция-сравнения выражение оператор[/b] [b]goto метка[/b] [b]let переменная = выражение[/b] [b]gosub метка[/b] [b]return[/b] [b]end[/b] Плюс добавлены оператор [b]poke адрес значение[/b] и функция [b]peek адрес[/b]. И еще [b]at x y[/b], чтобы двигать "курсор". Редактор понимает команды [b]clear[/b], [b]list[/b] и [b]run[/b]. А кроме того имитируется сохранение/загрузка текущей программы по командам [b]save[/b]/[b]load[/b]: пока код программы сохраняется/читается в/из массива tape (это как регистр М в калькуляторе, только гигантский :) ), но потом можно будет сделать, например, запись на SD-карту. Процессор стартует на частоте 1.5MHz, но можно поменять прямо на лету. Например, чтобы поставить 50MHz/512=100kHz, надо ввести 2 строки, нажимая после каждой <enter>[code]poke 32767 511 run[/code]А дальше либо загружаем "с кассеты" командой [b]load[/b] сохраненную ранее программу, либо [b]clear[/b] и вводим новую.
|
|
|
 |
Добавлено: Вс июн 08, 2025 23:08 |
|
|
 |
|