Инструменты пользователя

Инструменты сайта


msx:assembler_programming_guide-fakhrutdinov_bocharov:14

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:assembler_programming_guide-fakhrutdinov_bocharov:14 [2020-05-16 18:21]
GreyWolf [Приложение 4. Пример организации связей с языком MSX BASIC. "Универсальное меню"]
msx:assembler_programming_guide-fakhrutdinov_bocharov:14 [2020-11-25 09:55] (текущий)
GreyWolf
Строка 6: Строка 6:
 Приведенная ниже программа на языке [[msx:​basic:​]] вызывает подпрограмму на языке ассемблера и передает ей адрес строкового массива,​ используя функцию ''​VARPTR''​. Массив представляет собой меню. Приведенная ниже программа на языке [[msx:​basic:​]] вызывает подпрограмму на языке ассемблера и передает ей адрес строкового массива,​ используя функцию ''​VARPTR''​. Массив представляет собой меню.
 Строка массива,​ начинающаяся с символа пробел,​ считается комментарием. Пустая строка (%% ""​ %%) является признаком конца меню. Строка массива,​ начинающаяся с символа пробел,​ считается комментарием. Пустая строка (%% ""​ %%) является признаком конца меню.
 +
 +Ассемблирование в системе [[msx:​duad:​duad|]] описано [[01#​n121|здесь]].
  
 Подпрограмма на ассемблере рисует на экране (параметры ''​SCREEN 0:WIDTH 80''​ — устанавливаются заранее) окно, размеры которого определяются программно,​ исходя из параметров переданного массива (Y — по количеству элементов массива,​ т.е. до пустой строки,​ X — по наиболее длинной строке). Координаты окна программа на языке [[msx:​basic:​]] передаёт функцией ''​LOCATE X,​Y'',​ используя тот факт, что интерпретатор записывает значения X и Y в системные ячейки. Подпрограмма на ассемблере рисует на экране (параметры ''​SCREEN 0:WIDTH 80''​ — устанавливаются заранее) окно, размеры которого определяются программно,​ исходя из параметров переданного массива (Y — по количеству элементов массива,​ т.е. до пустой строки,​ X — по наиболее длинной строке). Координаты окна программа на языке [[msx:​basic:​]] передаёт функцией ''​LOCATE X,​Y'',​ используя тот факт, что интерпретатор записывает значения X и Y в системные ячейки.
 +
 +Запуск программы:​ <​code>​run"​wnd.bas"</​code>​
  
 Строка-курсор устанавливается на первый возможный вариант выбора меню (комментарии пропускаются). Эту строку можно перемещать в пределах окна с помощью клавиш вверх/​вниз. Выбор осуществляется нажатием клавиши ввод. Строка-курсор устанавливается на первый возможный вариант выбора меню (комментарии пропускаются). Эту строку можно перемещать в пределах окна с помощью клавиш вверх/​вниз. Выбор осуществляется нажатием клавиши ввод.
Строка 15: Строка 19:
   - В меню должен быть хотя бы один возможный выбор.   - В меню должен быть хотя бы один возможный выбор.
  
- +{{wnd.zip|Архив с готовыми файлами}}
- +
-{{wnd.zip|}}+
   * ''​wnd.asm''​ — исходный код программы на ассемблере   * ''​wnd.asm''​ — исходный код программы на ассемблере
   * ''​wnd.lst''​ — листинг программы на ассемблере   * ''​wnd.lst''​ — листинг программы на ассемблере
   * ''​wnd.bas''​ — программа на [[msx:​basic:​]]   * ''​wnd.bas''​ — программа на [[msx:​basic:​]]
   * ''​wnd.obj''​ — оттранслированная программа на ассемблере   * ''​wnd.obj''​ — оттранслированная программа на ассемблере
- 
-  - Ассемблирование в системе [[msx:​duad:​duad|]] описано [[01#​n121|здесь]]. 
-  - Запуск программы:​ <​code>​run"​wnd.bas"</​code>​ 
- 
  
 ===== 1. BASIC-программа ===== ===== 1. BASIC-программа =====
Строка 393: Строка 391:
         END         END
 </​code>​ </​code>​
 +
  
 ---- ----
Строка 399: Строка 398:
  
  
-{{tag>​MSX ​assembler Programming ​Book_apguidefb on_github}}+{{tag>​MSX Book_apguidefb on_github}}
  
msx/assembler_programming_guide-fakhrutdinov_bocharov/14.1589642489.txt.gz · Последние изменения: 2020-05-16 18:21 — GreyWolf