Важная информация

User Tag List

Показано с 1 по 2 из 2

Тема: Концептуальная доработка функции USR У Бейсиков

  1. #1
    Member Аватар для Alikberov
    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    118
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    50
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Концептуальная доработка функции USR У Бейсиков

    Как известно, функция «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 уровень выше и т.д.)

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

Название:	pseudo-80-run.jpg 
Просмотров:	44 
Размер:	22.5 Кб 
ID:	79328   Нажмите на изображение для увеличения. 

Название:	pseudo-80-type.jpg 
Просмотров:	36 
Размер:	19.5 Кб 
ID:	79329  
    Вложения Вложения

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Member Аватар для Alikberov
    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    118
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    50
    Поблагодарили
    22 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Более продвинутый вариант траснслятора

    Листинг представляет собою расширенный шестнадцатеричный дамп машинных кодов, в
    котором можно частично использовать механизмы блочного программирования.

    Пример #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 ячеек памяти
    • Цифра за буквой определяет индексное смещение относительно адреса переменной


    Ниже - архив с самим транслятором и скриншот с примером трансляции листинга недо-Питона в исполняемый код.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	MICROHEX.jpg 
Просмотров:	22 
Размер:	22.5 Кб 
ID:	79332  
    Вложения Вложения
    Последний раз редактировалось Alikberov; 28.08.2023 в 21:10.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Родословная бейсиков для 580ВМ80
    от esl в разделе Разное
    Ответов: 102
    Последнее: 13.03.2024, 10:05
  2. Многообразие океанских бейсиков
    от tnt23 в разделе Океан-240
    Ответов: 34
    Последнее: 02.06.2019, 09:15
  3. Ответов: 10
    Последнее: 08.07.2018, 16:11
  4. Basic 128 & usr 15619
    от Alex Rider в разделе Для начинающих
    Ответов: 26
    Последнее: 11.07.2017, 12:36
  5. LPRINT USR
    от JeRrS в разделе Для начинающих
    Ответов: 9
    Последнее: 03.11.2010, 02:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •