nedoPC.org

Community for electronics hobbyists, established in 2002
Last visit was: 08 Nov 2024 16:04
It is currently 08 Nov 2024 16:04



 [ 5 posts ] 
Концептуальная доработка функции USR У Бейсиков 
Author Message
Doomed
User avatar

Joined: 14 Oct 2019 18:10
Posts: 346
Location: Tashkent
Как известно, функция «USR(адрес)» вызывается пользовательский код, находящийся по указанному адресу, предварительно записанному в память, например, операторами DATA/READ/FOR/POKE/NEXT.
Как-то задумался над вопросом, чтобы добавить модификацию функции - «USR("строка" или строковая_переменная$)», которая могла бы сама транслировать/запускать псевдо-код, тело которого хранится прямо в строке.
Типа, «DEF FN MY(X) = USR("21 D0 76 3E 4E [[ 36 XX 23 3D C2 +0 ]]")» будет всякий раз при обращении «FN MY(код)» заполнять верхнюю строку экрана…
Здесь «[[» и «]]» открывают/закрывают тело блока операций, а интервал +0…+9 вставляет ссылку на начало n-го блока (+0 - текущий блок, +1 - блок на 1 уровень выше и т.д.)

Чтобы не быть голословным, ниже - сам набросок транслятора кода и скриншоты.


You do not have the required permissions to view the files attached to this post.


27 Aug 2023 15:13 WWW
Doomed

Joined: 10 Aug 2022 07:27
Posts: 404
Алик, ты думаешь здесь найти единомышленников? Сюда 3 человека в день заходят, правда Shaos? По моему, уже давно пора свернуть всю эту лавочку. Не?


28 Aug 2023 00:50
Doomed
User avatar

Joined: 14 Oct 2019 18:10
Posts: 346
Location: Tashkent
Листинг представляет собою расширенный шестнадцатеричный дамп машинных кодов, в
котором можно частично использовать механизмы блочного программирования.

Пример #1
  • «21[ "HELLO, WORLD" 00 ] CD 18 F8 C3 6C F8»
Здесь:
  • Конструкция «[ … ]» формирует блок инструкций или таблицы
  • Код «21» команды «LXI H» непосредственно перед «[…]» помещает адрес блока в HL

Пример #2
  1. «21 D0 76 0E 4E [ 36 17 23 0D C2] C3 6C F8»
  2. «21 D0 76 0E 4E [ 36 17 23 0D C2 +0] C3 6C F8»
  3. «21 D0 76 0E 4E [ 36 17 23 0D CA -0 C3] C3 6C F8»
Здесь:
  1. Код «C2» команды «JNZ» непосредственно перед «]» организует цикл в блоке
  2. Код «С2» с величиной «+0» означает условный переход на блок текущего уровня
  3. Код «CA» с величиной «-0» означает условный выход из блока текущего уровня

Пример #3
  • «[ CD 03 F8 FE 20 CA -0 4F FE 0D CA[ 0E 07 ] CD 09 F8 C3] C3 6C F8»
Здесь:
  • Код «CA» команды «JZ» и непосредственно «[…]» организует условный блок

Пример #4
  1. «2A X1 22 Y»
Здесь:
  • Символы «G…Z» адресуют область ОЗУ под переменные
  • Каждая переменная занимает 10 ячеек памяти
  • Цифра за буквой определяет индексное смещение относительно адреса переменной

Ниже - архив с самим транслятором и скриншот с примером трансляции листинга недо-Питона в исполняемый код.
Mondx wrote:
Алик, ты думаешь здесь найти единомышленников?
Ну, ресурс - тематический. Разработка - тематическая.
Кому надо - зайдёт да найдёт! :roll:


You do not have the required permissions to view the files attached to this post.


28 Aug 2023 11:22 WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23398
Location: Silicon Valley
Mondx wrote:
Алик, ты думаешь здесь найти единомышленников? Сюда 3 человека в день заходят, правда Shaos?...

от тыщи до двух тысяч хитов в день:

http://www.nedopc.org/forum/viewtopic.php?f=74&t=9193&start=30

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


31 Aug 2023 00:27 WWW
Doomed
User avatar

Joined: 14 Oct 2019 18:10
Posts: 346
Location: Tashkent
Просто как-то узнал про Wang 2200 со встроенным Бейсиком без оператора POKE и функций PEEK/USR, что может довести почти до шока любителей оптимизации и хака.
Вот и подумал, раз SUN работали над Java-процессором, но всё осталось на уровне «виртуальной Java-машины», то вот «кроссплатформенный USR» - мог бы существовать хотя бы как стек-машина… :roll:


29 Oct 2023 02:14 WWW
 [ 5 posts ] 

Who is online

Users browsing this forum: Claude AI [Bot], vital72 and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.