Вход

Просмотр полной версии : BASIC 48 -> AVR (Z80 ASM -> AVR ASM)



selevo
19.06.2020, 23:14
Я хочу спектрум на одном чипе с бейсиком как на спектруме вывод будет на LCD.
И вот пару недель уже думаю как бы мне по-быстрее сконвертировать ASM z80 в AVR
Есть ли варианты или можно пойти другим путем ?

Мне нужен только бейсик.
Есть готовые проекты avr basic computer но там бейсик слишком уже примитивный и надо каждый оператор набирать по буквам

shurik-ua
20.06.2020, 08:16
архитектуры разные - гарвард и фон нейман - поэтому в лоб эту задачу решить не получится - нужно будет фиксить очень много нюансов

selevo
22.06.2020, 10:53
ну в спектруме практически также как в AVR программа и данные разделены.
Вся программа в ПЗУ,а все данные системы в ОЗУ :)

andrews
22.06.2020, 11:35
Я хочу спектрум на одном чипе с бейсиком как на спектруме вывод будет на LCD.
И вот пару недель уже думаю как бы мне по-быстрее сконвертировать ASM z80 в AVR
Есть ли варианты или можно пойти другим путем ?

Мне нужен только бейсик.
Есть готовые проекты avr basic computer но там бейсик слишком уже примитивный и надо каждый оператор набирать по буквам
тут даже просто конвертор кода z80->avr, если бы он был, не помог, так как надо учитывать разницу в железе. Но попробуйте его начать писать самостоятельно, тогда почувствуете разницу в архитектуре CISC и RISC в этой конкретной паре.

Но все же в разы проще Вам взять ядро z80 для FPGA и пересобрать код Бейсика, только исходя из различий железа( хотя и это нетривиальная задача)

selevo
23.06.2020, 10:25
дорого это z80 FCPGA если так размышлять так можно и ESP286 взять, на ней все уже сделали и работает эмулятор спектрума.
Но мне не надо никаких эмуляций.
Наверно подожду пока выйдет collapsos для AVR на форте :) и допилю чтоб одно нажатие -готовый оператор.
Это по-моему архаично набирать операторы по буквам но это до сих пор происходит, просто удивительно.
Ну ладно хоть спустя 60 лет появилось автоподстановка вводимого. кое-где в программах требующих 8gb памяти и 4 ядра в процессоре для удовлетворительной работы.
Ц целом я конечно понимаю что комманды другие но смысл их однотипен загрузить, сдвинуть, вычесть прибавить...

Barmaley_m
28.06.2020, 01:22
Предлагаю написать интерпретатор нужного языка (бейсика или др.) на языке C. Начать так, чтобы программа была машинно-независимой и использовала только функции стандартной библиотеки C. Сначала испытывать и налаживать её на обычном компьютере, как консольное приложение. Должно работать и под виндой, и под линуксом, где угодно. Для такой разработки можно воспользоваться огромным арсеналом средств разработки и наладки, существующих на PC.

Когда будет достигнута удовлетворительная работа интерпретатора - то скомпилировать и портировать его под нужную аппаратную платформу - будь то AVR или (что лучше) ARM. Можно начать с наладки на отладочной плате, типа AVR-Discovery, или STM32-Nucleo. Будет сэкономлено время на разработку железа и деньги на изготовление прототипов.

Когда всё заработает на отладочной плате с целевым процессором - тогда и только тогда разрабатывать и запускать своё железо.

Такой подход доказал в моей практике высокую эффективность на нескольких проектах.

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

Дополнение: не обязательно разрабатывать интерпретатор с нуля; можно погуглить на тему существующих свободных проектов на эту тему; взять какой-нибудь из них и доработать. Лишь бы исходный проект был портируемый, то есть, написан на чистом C без привязки к железу и ОС.

andrews
28.06.2020, 19:04
Библиотеки пзпт для конкретного железа где будете брать? Уж они точно не на С должны быть написаны. Кстати может есть у кого исходники для 8051 с использованием ее MUL AB, DIV AB?

JV-Soft
29.06.2020, 00:42
selevo, вот тебе все с исходниками , разбирай те части ,что тебе нужны - https://zx-pk.ru/threads/23671-avr-zx-spectrum-v2_0.html

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

PS ссылки скисли , но есть почта - Vasil.lisitsin@yandex.ru (Vasil.lisitsin@yandex.ru)

Barmaley_m
30.06.2020, 01:25
Библиотеки пзпт для конкретного железа где будете брать? Уж они точно не на С должны быть написаны.
Такие библиотеки обычно поставляются в составе стандартной библиотеки C для нужного железа. Если там есть компилятор C - то есть и стандартная библиотека, и есть плавающая запятая.

andrews
30.06.2020, 14:02
Для бесплатных версий как правило "Source code for runtime libraries is not included". А "стандартная библиотека C для нужного железа" рано или поздно обращается к исходникам на ассемблере, которые даже лучше если имеют возможность собираться в библиотеку при построении проекта. В противном случае приходится "ручками"(батником) выдирать из библиотеки ненужные модули и заменять их нужными. Посмотрите пожалуйста, у кого есть полный Keil или IAR, на предмет исходников пзпт. А я погляжу используют они "MUL AB, DIV AB" или нет. Могут и не использовать.

selevo
14.07.2020, 11:56
вот тебе все с исходниками , разбирай те части ,что тебе нужны - https://zx-pk.ru/threads/23671-avr-z...trum-v2_0.html


Я же написал что мне ненужны эмуляторы их полно и гораздо дешевле :)
Он там написал табличный эмулятор комманд Z80, да и то не с нуля, что-то уже в сети было по эмуляции процессоров.
Его проект вообще реально бесполезен, с любой точки зрения моего балкона.

Вот нечто близкое:
https://www.google.com/search?newwindow=1&sxsrf=ALeKk02zDrWrrhAOBu8LUAtq0K27_Vs6lg%3A1594717 173326&ei=9XMNX4uLE_vhmwWh8rDwAw&q=AVR+BASIC+Computer&oq=AVR+BASIC+Computer

https://hackaday.io/project/22036-terminal-basic

Но авторы почему-то никак не могут догадаться поставить на каждую кнопку по оператору и предлагают на своих поделках жамкать по символу.

Это превращает очень интересную вещь в извращение и возводит в квардат ))
Спектрум обеспечил максимальное быстрое вхождение в систему именно этим.
Если бы авторы предложили набирать все по буквам....
Думаю его будущее было бы сильно другим, сильно хуже.
STM32 сейчас более интересно смотрится как такой одночиповый комп, с другой стороны код его чрезвычайно прожорлив.

Syntal
15.07.2020, 18:41
Но авторы почему-то никак не могут догадаться поставить на каждую кнопку по оператору и предлагают на своих поделках жамкать по символу.

Спектрум обеспечил максимальное быстрое вхождение в систему именно этим.
Если бы авторы предложили набирать все по буквам....
Думаю его будущее было бы сильно другим, сильно хуже.
Этот маразм - токены для всех операторов - перекочевал в ZX-Spectrum 48K имхо еще из ZX80. Связано с тем, что у последнего ОЗУ всего 16 Кб было, понятно, что экономили память под Бейсик-программы как могли. Уже в ZX128 отказались и больше никто про этот бред не вспоминал. Прикольно, что кому-то "клинопись иероглифами" с помощью CAPS SHIFT и SYMBOL SHIFT запала больше чем использование обычного "алфавита". )))

Barmaley_m
16.07.2020, 23:37
Этот маразм - токены для всех операторов
Я не видел ни одного бейсика для 8-битных компьютеров, где бы не применялись токены для операторов. Бейсик-РК, "Специалист", "Агат-7" (Apple II)... Там везде были токены, только они были не видны для пользователя. Команды набирались вручную, а при нажатии на клавишу "Ввод" строки токенизировались. Команда "LIST" производила обратное преобразования. Также ("невидимые") токены использовались в формате ассемблера ZEUS на Спектруме, а также более поздними русскими XAS и др. Без токенов программы раздуваются сверх меры, к тому же, существенно замедляется их исполнение.

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

Также в "Специалисте" был ускоренный набор команд - нажатие клавиши F2 и какой-нибудь буквы приводило к быстрому вводу некоторой команды бейсика. Конечно, спектрумовский "принудительный" набор токенами несколько затруднял первоначальное освоение компьютера. Но команд не так уж много. Они быстро запоминались; к тому же, все клавиши были подписаны. И как только освоишь скоростной набор - то жизнь программиста на бейсике сразу облегчалась. Ведь приходилось меньше работать клавиатурой.

selevo
07.10.2020, 13:33
Конечно, работа с клавиатурой это самое ужасное в программировании на начальном этапе, а синтаксис- это самое большое зло.
Сейчас питон стал модным на диком западе...
У меня такое ощущение что его создавал наркоман. Потому что только наркоман мог придумать такие правила синтаксиса и еще обозвать это очень простым понятным и лаконичным.

Давно пора отойти от синтаксис зависимых языков на структурное программирование. Это обеспечивает максимально быстрое вхождение в программирование и обеспечивает новичку максимально быстрый результат.

Современное структурное программирование извратили какие-то пазлы кирпичики, кастраты какие-то.
Пользователь жалуется а вот нет вот этого блока,а можно мне еще вот этот..
Потом пишут на Си дополнения к этим блочным средам, новые блоки...
надо было делать с возможностью редактировать эти пазлы и блоки, создавать свои.
Такое ощущение что кругом одни придурки.

Andrew771
07.10.2020, 22:22
Давно пора отойти от синтаксис зависимых языков на структурное программирование
структурное - это Паскаль и Оберон?)) Недалеко они от Бейсика ушли. Си - вообще кака.
Лучше логические и функциональные языки.

NEO SPECTRUMAN
08.10.2020, 10:00
божо пишите уже на православном асме :v2_dizzy_priest:
и не морочте себе и другим голову :)

понаразводили тут сяпаскалей, питоноберонов... :v2_dizzy_facepalm:

а потом для проверки *****го переполнения которое на любом проце достается из carry флага
на сяпитонах нужно городить какое то гафно...

selevo
09.10.2020, 22:44
паскаль самый обыкновенный синтаксис зависимый язык, там же обычный набор текста.
хотя turbo 51 чрезвычайно крут ))
но все это синтаксис...
наверно мне надо было сказать что надо делать уклон на алгоритмические языки, языки структурных схем и алгоритмов, что-то вроде как в языках для промышленных контроллеров (но это не то, там нельзя блоки редактировать, можно только макросы создавать, хотя это тоже решение) или очень интересная затея у Громова была с его алгоритм билдером.

Lisitsin
27.02.2025, 16:20
На одном чипе у меня не получилось, минимум вышло 4 - но это с выводом на RGB. Есть код эмулятора