nedoPC.org

Community for electronics hobbyists, established in 2002
Last visit was: 27 Jul 2024 06:14
It is currently 27 Jul 2024 06:14



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

Joined: 14 Oct 2019 18:10
Posts: 332
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: 370
Алик, ты думаешь здесь найти единомышленников? Сюда 3 человека в день заходят, правда Shaos? По моему, уже давно пора свернуть всю эту лавочку. Не?


28 Aug 2023 00:50
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 332
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: 23104
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
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 332
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: Bing [Bot] and 1 guest


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.