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

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


msx:basic_programming_guide:101

Различия

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

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

msx:basic_programming_guide:101 [2020-10-31 13:47]
msx:basic_programming_guide:101 [2022-09-09 23:30]
Строка 1: Строка 1:
-[<>] 
-~~TOC wide~~ 
  
-====== Приложение 1 — 1.1. Связь программы на MSX BASIC с подпрограммами в машинных кодах ====== 
-FIXME 
- 
-[[bibliography#​b92|[92]]],​ [[bibliography#​b96|[96]]] 
- 
- 
-{{anchor:​def_usr}} 
-====== DEF USR ====== 
-FIXME 
- 
-Оператор ''​DEF USR''​ определяет начальный адрес программы в машинных кодах для последующего использования. Можно использовать до 10 различных программ. Программы нумеруются от 0 до 9. По умолчанию берётся значение 0. 
- 
-Синтаксис:​ 
-<WRAP group> 
-<WRAP half column> 
-<​code>​ 
-DEF USR номер = адрес 
-</​code>​ 
- 
-</​WRAP>​ 
-, 
-<WRAP half column> 
-Параметры 
-  * //​номер//​ — номер программы в машинных кодах, может находиться в диапазоне от 0 до 9. Если не указано,​ то 0 
-  * //​адрес//​ — начальный адрес подпрограммы на в машинных кодах 
-</​WRAP>​ 
-</​WRAP>​ 
- 
-__//​Пример//​__:​ 
- 
-<​code>​ 
-DEF USR 1 = &HA000 
-</​code>​ 
-В этом примере указано,​ что начальным адресом подпрограммы с номером 1 является &HA000. 
- 
-{{anchor:​usr}} 
-====== USR() ====== 
- 
-FIXME 
- 
-Функция ''​USR()''​ передает переменную в подпрограмму на машинном языке. Сначала необходимо определить расположение подпрограммы с помощью [[#DEF USR]]. 
- 
-Синтаксис:​ 
-<WRAP group> 
-<WRAP half column> 
- 
-<​code>​ 
-USR [номер подпрограммы](аргумент) 
-</​code>​ 
-</​WRAP>​ 
-, 
-<WRAP half column> 
-где 
-  * //​номер//​ — номер подпрограммы число в диапазоне от 0 до 9, если не указано то 0 
-  * //​аргумент//​ — имя переменной,​ или строка может быть получена машинной подпрограммой,​ если аргументом является 0 (нуль), в программу в машинных кодах ничего не переносится 
-</​WRAP>​ 
-</​WRAP>​ 
- 
-Значение переменной передается подпрограмме в машинных кодах. При вызове программы число байтов,​ занимаемое этим значением,​ однозначно связанное с его типом, заносится в регистр А микропроцессора [[zilog_z80:​zilog_z80|Z80]] и в ячейку памяти &HF663. Возможные значения:​ 
-  * 2 — целочисленные 
-  * 4 — вещественные с одинарной точностью 
-  * 8 — вещественные с двойной точностью 
-  * 3 — строковые 
-Адрес переменной хранится в регистре HL. 
- 
-Для строк имеется небольшое отличие. Адрес, где записана строка,​ находится в регистре DE. 
- 
----- 
- 
- 
-[<>] 
- 
- 
-{{tag>​MSX BASIC Book_msxbpg}} 
msx/basic_programming_guide/101.txt · Последние изменения: 2022-09-09 23:30 (внешнее изменение)