Forth на рк-86

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Re: RFORTH

Post by b2m »

kozzdo wrote:надо мастрячить клавиатурку какую-никакую
Если есть ROM-диск, то достаточно будет клавиш R, G, F, запятая и ввод :)
Чтобы ввести команды
R,FFF
G

А если ещё есть расширенное ПЗУ по адресу F000, то вообще двух клавиш достаточно: U и ввод.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
kozzdo
Novelist
Posts: 34
Joined: 03 Aug 2020 20:18

Re: RFORTH

Post by kozzdo »

Да скорее всего на монтажке что-нибудь слеплю для начала, типа мгтф-стайл. Хотя конечно можно клаву на минималочках с несколькими кнопками сваять тоже по приколу )))) Надо заказывать кнопки однако и монтажку побольше площадью. Или две, по обстановке.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: RFORTH

Post by Lavr »

А чего бы не использовать обычную PC-клавиатуру с драйвером на микроконтроллере?
Всяко и МГТФа поменьше понадобится, и раскладка привычная...
iLavr
kozzdo
Novelist
Posts: 34
Joined: 03 Aug 2020 20:18

Re: RFORTH

Post by kozzdo »

Насчет клавиатуры я особо не углублялся в вопрос, но почему-то в голове сидит мысль, что эмуляция замкнутых клавиш не совсем корректно эмулируется. Это все ладно, надо интерпретатор доковырять. Я кажись приблизился к самой сложной части и пока что нихрена не могу понять ахаха))) но как грится мы не привыкли отступать
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: RFORTH

Post by Lavr »

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

Для "Радио-86РК" и "Ориона" корректный драйвер на микроконтроллере сделали довольно давно.

Впрочем, это я лишь к тому, чтобы вам не загоняться с клавиатурой - не в ней же весь интерес...
iLavr
kozzdo
Novelist
Posts: 34
Joined: 03 Aug 2020 20:18

Re: RFORTH

Post by kozzdo »

2 Lavr, а по клавиатуркам это тут на nedoPC есть? Может действительно очень убыстрит реанимацию моих старинных железяк )))
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: RFORTH

Post by Lavr »

kozzdo wrote:2 Lavr, а по клавиатуркам это тут на nedoPC есть?
Есть где-то 100% есть... если не сам материал, то точно есть ссылка на дружественный форум -
https://zx-pk.ru/, откуда родом эти конструкции.
Поищите поиском по форуму, простите, но мне просто лень за всех искать... :wink:
kozzdo wrote:Может действительно очень убыстрит реанимацию моих старинных железяк )))
Безусловно убыстрит!
У меня дома "РК-86" и "Орион-128" без клавиатур, я для них специально добыл РС-клавиатуры,
по той причине, что я уже как-то не ощущаю себя тем героем своей молодости, у которого хватило
терпения на 78 кнопок "Спецалиста". :lol:

Image
iLavr
kozzdo
Novelist
Posts: 34
Joined: 03 Aug 2020 20:18

Re: RFORTH

Post by kozzdo »

Lavr, спасибо, кое-что уже нашел, изучаю. У меня где-то недоделанная валяется клавиатура дя ориона, которая должна была быть на герконах и магнитных кнопках из некоего кооперативного набора, но треть кнопок безвовзратно утеряна, часть герконов тоже. хватало же энтузиазма пилить Н-образные отверстия в стеклотекстолите надфилем ))))))

Немного притомился разбираться в исходнике, сейчас смотрю, что этот форт генерит при создании новых слов из файла с упражнениями Шихова. Косвенно, это тоже помогает понять суть.
kozzdo
Novelist
Posts: 34
Joined: 03 Aug 2020 20:18

Re: RFORTH

Post by kozzdo »

Хы, про отсутствие защиты от дурака еще раз...
можно создать две переменные, под одну зарезервировать 1 байт, а под вторую - 2, например:
CREAT VAR8 1 ALLOT и
CREAT VAR16 2 ALLOT
при этом в словаре, прямо перед переменной VAR16 будет зарезервирован всего 1 байт (что естественно)
После этого, ничто сцуко не мешает нам присвоить переменной VAR8 двухбайтовое значение:
666 VAR8 !

при этом старший байт 06 налезет в памяти на поле адреса переменной VAR16 и при попытке вызвать слово WORDS весь Форт крашнется.

Мгеге. Это наводит на мысль написать словцо, которое бы отображало части словаря с заданного адреса в человеческом структурированном виде, чтобы хоть как-то по быстрому глянуть, что там с переменными и т.п. Типа такой лайтовый отладчик )))
kozzdo
Novelist
Posts: 34
Joined: 03 Aug 2020 20:18

Re: RFORTH

Post by kozzdo »

Еще меня впечатлило вот это (кусочек программы которая перехватывает F809):

: TAB DUP TAB [ 01 HERE 3 - C! ] 1044 !

Рекурсивный вызов TAB вызывает странные чувства, одновременно и прикольно и шизоидно. Но сам автор об этом упоминает где-то, говоря, что после первоначальной компиляции нового слова, оно немедленно может быть скомпилировано прямо в этом же слове.
Не уверен, что это справедливо для всех фортов, но надо посмотреть, могут ли такое делать форты на ардуинках.
Как показывает дизассемблирование, повторный вызов TAB компилируется как CALL <адрес TAB>, а вот эта хулиганская конструкция [ 01 HERE 3 - C! ] изменяет только что скомпилированный машинный код CALL на LXI B, <адрес TAB>, т.е. заносит в вершину стека адрес вновь созданного слова TAB :kruto:
( а затем записывает этот адрес в ячейку 1044, хде до этого была ссылка на подпрограмму монитора для вывода символа на экран.)

Ох, не так-то прост был этот товарищ Шихов!

Ладно, надо бы попробовать что-то практическое написать уже ))))
kozzdo
Novelist
Posts: 34
Joined: 03 Aug 2020 20:18

Forth на рк-86

Post by kozzdo »

Всем привет! Есть тут кто живой? ))

Я портировал e-forth на рк-86, вроде работает.
User avatar
Shaos
Admin
Posts: 24014
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: RFORTH

Post by Shaos »

Где качать? ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
kozzdo
Novelist
Posts: 34
Joined: 03 Aug 2020 20:18

Re: RFORTH

Post by kozzdo »

Кидаю сюда файлик с раширением .txt, его надо переименовать в .bin, и он загрузится в эмулятор rk86.ru, старт с адреса 00 командой монитора G0
не доходят руки оформить его в правильном формате рк-86

чуть попозже запилю аккаунт на гитхабе и сброшу туда исходник
You do not have the required permissions to view the files attached to this post.
Andnor
Fanat
Posts: 80
Joined: 01 Jan 2023 11:37

Re: RFORTH

Post by Andnor »

Исходник надо сразу публиковать вместе с бинарником или вообще только исходник.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: RFORTH

Post by Lavr »

Andnor wrote:Исходник надо сразу публиковать вместе с бинарником или вообще только исходник.
А вы полистайте сначала эту ветку, и исходники найдёте, и другие версии языка, и для РК-86 в том числе... :-?
iLavr