nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 16:21



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

Joined: 14 Oct 2019 18:10
Posts: 273
Location: Tashkent
Reply with quote
Как известно, функция «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 уровень выше и т.д.)

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


Attachments:
File comment: Набросок самого транслятора
RK86-PSD.RKR.zip [772 Bytes]
Downloaded 108 times
File comment: Ввод конкретного кода
pseudo-80-type.png
pseudo-80-type.png [ 16.85 KiB | Viewed 3113 times ]
File comment: Результат выполнения кода
pseudo-80-run.png
pseudo-80-run.png [ 20.36 KiB | Viewed 3113 times ]
27 Aug 2023 15:13
Profile WWW
Doomed

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


28 Aug 2023 00:50
Profile
Maniac
User avatar

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

Пример #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:


Attachments:
File comment: Файл с краткой инструкцией и rkr-файл с «недо-Питоном» на этом недо-ассемблере
MICROHEX.RKR.ZIP [1.74 KiB]
Downloaded 103 times
28 Aug 2023 11:22
Profile WWW
Admin
User avatar

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

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

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

_________________
:dj: https://mastodon.social/@Shaos


31 Aug 2023 00:27
Profile WWW
Maniac
User avatar

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


29 Oct 2023 02:14
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 5 posts ] 

Who is online

Users browsing this forum: Bing [Bot] and 9 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

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