Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:basic_dialogue_programming_language:007 [2022-09-17 18:23] GreyWolf |
msx:basic_dialogue_programming_language:007 [2023-02-19 16:20] (текущий) GreyWolf |
||
---|---|---|---|
Строка 217: | Строка 217: | ||
"сбрасывает" значение функциональной клавиши с номером n. | "сбрасывает" значение функциональной клавиши с номером n. | ||
+ | {{anchor:key_list}} | ||
Оператор | Оператор | ||
<code> | <code> | ||
Строка 336: | Строка 337: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Человеческая изобретательность ни в чем не проявляется так, как в играх. | Человеческая изобретательность ни в чем не проявляется так, как в играх. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 864: | Строка 865: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Стоять я не могу… Мои колени слабеют… \\ | Стоять я не могу… Мои колени слабеют… \\ | ||
душно… Где ключи? Ключи, ключи мои… | душно… Где ключи? Ключи, ключи мои… | ||
Строка 872: | Строка 873: | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
- | [[msx:basic:]] включает в себя средство, позволяющее использовать функциональные клавиши не только для ввода некоторого слова, но и для прерывания выполнения программы и вызова определённой подпрограммы. | + | Интерпретатор [[msx:basic:]] включает в себя средство, позволяющее использовать функциональные клавиши не только для ввода некоторого слова, но и для прерывания выполнения программы и вызова определённой подпрограммы. |
Оператор | Оператор | ||
Строка 890: | Строка 891: | ||
осуществляет передачи управления подпрограммам, расположенным со строк n1, n2, …, nk, причём нажатие функциональной клавиши <key>Fk</key> (k=1, 2, …, 10) приводит к передаче управления подпрограмме, начинающейся со строки с номером nk (k=1, 2, …, 10). Если Вы хотите использовать только некоторые функциональные клавиши, то пропустите ненужные номера строк (оставив запятые!). | осуществляет передачи управления подпрограммам, расположенным со строк n1, n2, …, nk, причём нажатие функциональной клавиши <key>Fk</key> (k=1, 2, …, 10) приводит к передаче управления подпрограмме, начинающейся со строки с номером nk (k=1, 2, …, 10). Если Вы хотите использовать только некоторые функциональные клавиши, то пропустите ненужные номера строк (оставив запятые!). | ||
- | {{anchor:key1}} | + | {{anchor:key_on}} |
Предварительно функциональную клавишу <key>Fk</key> необходимо "активизировать" оператором | Предварительно функциональную клавишу <key>Fk</key> необходимо "активизировать" оператором | ||
<WRAP group> | <WRAP group> | ||
Строка 906: | Строка 907: | ||
Теперь перед выполнением каждого нового оператора программы интерпретатор будет проверять, не была ли нажата какая–нибудь "активизированная" функциональная клавиша, и если такое нажатие произошло, то интерпретатор вызывает соответствующую подпрограмму. | Теперь перед выполнением каждого нового оператора программы интерпретатор будет проверять, не была ли нажата какая–нибудь "активизированная" функциональная клавиша, и если такое нажатие произошло, то интерпретатор вызывает соответствующую подпрограмму. | ||
+ | {{anchor:key_off}} | ||
Для блокирования (запрещения) такого вызова необходимо выполнить оператор | Для блокирования (запрещения) такого вызова необходимо выполнить оператор | ||
<WRAP group> | <WRAP group> | ||
Строка 919: | Строка 921: | ||
Как и в предыдущих случаях, значение в скобках k определяет номер функциональной клавиши, для которой выполняется данный оператор. | Как и в предыдущих случаях, значение в скобках k определяет номер функциональной клавиши, для которой выполняется данный оператор. | ||
+ | {{anchor:key_stop}} | ||
Иногда возникает необходимость временно оградить программу от прерываний, вызываемых функциональными клавишами, и в то же время запомнить каждое нажатие такой клавиши, с тем чтобы впоследствии можно было выполнить все соответствующие вызовы подпрограммы. Это достигается с помощью оператора | Иногда возникает необходимость временно оградить программу от прерываний, вызываемых функциональными клавишами, и в то же время запомнить каждое нажатие такой клавиши, с тем чтобы впоследствии можно было выполнить все соответствующие вызовы подпрограммы. Это достигается с помощью оператора | ||
<WRAP group> | <WRAP group> | ||
Строка 972: | Строка 975: | ||
- Наберите [[#e0721-02|пример 2]], вставив строку: <code>135 IF I=50 THEN KEY(1)STOP</code> | - Наберите [[#e0721-02|пример 2]], вставив строку: <code>135 IF I=50 THEN KEY(1)STOP</code> | ||
- | Оператор ''ON KEY GOSUB'' позволяет легко организовывать "листание" законченных программных фрагментов во время выполнения программы, например, страницы справочной информации 1÷3 вызываются нажатием на клавиши | + | Оператор ''ON KEY GOSUB'' позволяет легко организовывать "листание" законченных программных фрагментов во время выполнения программы; например, страницы справочной информации 1÷3 вызываются нажатием на клавиши |
<key>F1</key>÷<key>F3</key>, демонстрационный пример выполняется при нажатии клавиши <key>F4</key>, | <key>F1</key>÷<key>F3</key>, демонстрационный пример выполняется при нажатии клавиши <key>F4</key>, | ||
выход из программы — при нажатии клавиши <key>F5</key> и т.д. | выход из программы — при нажатии клавиши <key>F5</key> и т.д. | ||
Строка 1119: | Строка 1122: | ||
90 RETURN | 90 RETURN | ||
</code> | </code> | ||
- | На закуску отметим интересный факт: | + | "На закуску" отметим интересный факт: |
\\ {{.examples:0723-012.bas|}} \\ [[+tab|wmsxbpge>0723-012.bas]] | \\ {{.examples:0723-012.bas|}} \\ [[+tab|wmsxbpge>0723-012.bas]] | ||
<code> | <code> | ||
Строка 1178: | Строка 1181: | ||
* n4 — номер первой строки подпрограммы, которой передаётся управление при нажатии кнопки 2 джойстика 2. | * n4 — номер первой строки подпрограммы, которой передаётся управление при нажатии кнопки 2 джойстика 2. | ||
- | Для того, чтобы переход к подпрограмме по джойстику был возможен, его можно подтвердить, отменить или приостановить соответственно операторами | + | Для того чтобы переход к подпрограмме по джойстику был возможен, его можно подтвердить, отменить или приостановить соответственно операторами |
<WRAP group> | <WRAP group> | ||
<WRAP half column> | <WRAP half column> | ||
Строка 1390: | Строка 1393: | ||
</WRAP> | </WRAP> | ||
- <WRAP> Приоритет (в порядке убывания) при одновременном возникновении событий: | - <WRAP> Приоритет (в порядке убывания) при одновременном возникновении событий: | ||
- | * обработка ошибок в программе пользователя | + | * обработка ошибок в программе пользователя; |
- | * ''[[007#onkeygosub|ON KEY GOSUB]]'' | + | * ''[[007#onkeygosub|ON KEY GOSUB]]''; |
- | * ''[[007#onstopgosub|ON STOP GOSUB]]'' | + | * ''[[007#onstopgosub|ON STOP GOSUB]]''; |
- | * ''[[005#onspritegosub|ON SPRITE GOSUB]]'' | + | * ''[[005#onspritegosub|ON SPRITE GOSUB]]''; |
- | * ''[[007#onstickgosub|ON STICK GOSUB]]'' | + | * ''[[007#onstickgosub|ON STICK GOSUB]]''; |
- | * ''[[007#onstringgosub|ON STRIG GOSUB]]'' | + | * ''[[007#onstringgosub|ON STRIG GOSUB]]''; |
- | * ''[[007#onintervalgosub|ON INTERVAL GOSUB]]'' | + | * ''[[007#onintervalgosub|ON INTERVAL GOSUB]]''; |
- | * [[msx:network_basic|прерывания в локальной сети]] | + | * [[msx:network_basic|прерывания в локальной сети]]; |
* другие прерывания. | * другие прерывания. | ||
</WRAP> | </WRAP> | ||
Строка 1636: | Строка 1639: | ||
* ''SET'', ''PROMPT'' — служебные слова; | * ''SET'', ''PROMPT'' — служебные слова; | ||
* подсказка — значение строковой константы, длина которого не более 6 символов; | * подсказка — значение строковой константы, длина которого не более 6 символов; | ||
- | переопределяет подсказку Ok. | + | позволяет переопределить стандартную системную подсказку Ok. |
Примечание. Можно сохранить результат действия только одного из операторов ''[[#settitle|SET TITLE]]'', ''[[#setpassword|SET PASSWORD]]'' или ''[[#setprompt|SET PROMPT]]'': использованный последним "замещает" предыдущий. | Примечание. Можно сохранить результат действия только одного из операторов ''[[#settitle|SET TITLE]]'', ''[[#setpassword|SET PASSWORD]]'' или ''[[#setprompt|SET PROMPT]]'': использованный последним "замещает" предыдущий. | ||
Строка 1676: | Строка 1679: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Мартобря 86 числа. | Мартобря 86 числа. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Н.В.Гоголь. Записки сумасшедшего// | + | —//Н.Гоголь. Записки сумасшедшего// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 1762: | Строка 1765: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Всё врут календари. | Всё врут календари. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
Строка 1808: | Строка 1811: | ||
Команда ''GET TIME Z$,A'' возвращает значение, определяющее время подачи подачи сигнала. | Команда ''GET TIME Z$,A'' возвращает значение, определяющее время подачи подачи сигнала. | ||
</WRAP> | </WRAP> | ||
- | Отметим, что подача сигнала не является автоматической. Для её осуществления необходимо использовать подпрограмму, сравнивающую текущие дату и время с заданными параметром A, и в случае совпадения выдающую сигнал ''BEEP'' или определённое сообщение. | + | Отметим, что подача сигнала не является автоматической. Для её осуществления необходимо использовать подпрограмму, сравнивающую текущие дату и время с заданными параметром A и в случае совпадения выдающую сигнал ''BEEP'' или определённое сообщение. |
__//Примеры//__: | __//Примеры//__: | ||
Строка 1850: | Строка 1853: | ||
Ok | Ok | ||
</code> | </code> | ||
- | * <WRAP>{{anchor:e073-06}} 6) Ваш компьютер можно использовать и в бытовых целях. Если не хотите опаздывать на свидание, пользуйтесь возможностями компьютеров [[msx:msx_2]] !!! | + | * <WRAP>{{anchor:e073-06}} 6) Ваш компьютер можно использовать и в бытовых целях. Если не хотите опаздывать на свидание, пользуйтесь возможностями компьютеров [[msx:msx_2]] ! |
\\ {{.examples:073-06.bas|}} \\ [[+tab|wmsxbpge>073-06.bas]] | \\ {{.examples:073-06.bas|}} \\ [[+tab|wmsxbpge>073-06.bas]] | ||
<code> | <code> | ||
Строка 2058: | Строка 2061: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
- | "M∗∗∗ сказал молодому человеку, который не замечал,что его любит женщина:"Вы ещё так юны, что, видно, разбираете только крупный шрифт". | + | "M<sup>∗∗∗</sup> сказал молодому человеку, который не замечал,что его любит женщина:"Вы ещё так юны, что, видно, разбираете только крупный шрифт". |
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Себастьян Шамфор. Характеры и анекдоты// | + | —//С.Шамфор. Характеры и анекдоты// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 2408: | Строка 2411: | ||
|для шага //"цицеро"//|136| | |для шага //"цицеро"//|136| | ||
|для шага //"элите"//|163| | |для шага //"элите"//|163| | ||
- | |для //уплотняемого// шага|233| | + | |для //уплотненного// шага|233| |
{{anchor:e074-17}} __//Пример 17//__. Установка полей. | {{anchor:e074-17}} __//Пример 17//__. Установка полей. | ||
Строка 2469: | Строка 2472: | ||
LPRINT CHR$(27);"(";"n11n12n13,n21n22n23,...nn1nn2nn3." | LPRINT CHR$(27);"(";"n11n12n13,n21n22n23,...nn1nn2nn3." | ||
</code> | </code> | ||
- | При этом аннулируются все позиции текущей горизонтальной табуляции и устанавливает новые, определённые трёхзначными числами. | + | При этом аннулируются все позиции текущей горизонтальной табуляции и навливаются новые, определённые трёхзначными числами. |
\\ {{.examples:074-183.bas|}} <code> | \\ {{.examples:074-183.bas|}} <code> | ||
1 POKE &HF418,1 | 1 POKE &HF418,1 | ||
Строка 2483: | Строка 2486: | ||
Метки будут установлены в колонках 8, 16 и 24. Запятые в 10–й строке используются для разделения цепочки меток, точка — для окончания определения. | Метки будут установлены в колонках 8, 16 и 24. Запятые в 10–й строке используются для разделения цепочки меток, точка — для окончания определения. | ||
</WRAP> | </WRAP> | ||
- | * <WRAP> 4) Для того, чтобы стереть часть горизонтальных меток из набора печатающего устройства, существует следующая команда: | + | * <WRAP> 4) Для того чтобы стереть часть горизонтальных меток из набора печатающего устройства, существует следующая команда: |
<code> | <code> | ||
LPRINT CHR$(27);")";"n11n12n13,n21n22n23,...nn1nn2nn3." | LPRINT CHR$(27);")";"n11n12n13,n21n22n23,...nn1nn2nn3." | ||
Строка 2595: | Строка 2598: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
— Боюсь, что от объяснений все проигрывает,— сказал он. \\ | — Боюсь, что от объяснений все проигрывает,— сказал он. \\ | ||
— Одни только результаты впечатляют гораздо больше. | — Одни только результаты впечатляют гораздо больше. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Конан Дойль. Приключения клерка// | + | —//А.Конан Дойль. Приключения клерка// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 2649: | Строка 2652: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Сделаешь раз по сто — вот и будет просто.<WRAP rightalign> | Сделаешь раз по сто — вот и будет просто.<WRAP rightalign> | ||
- | —//П.А. Федотов// | + | —//П.Федотов// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> | ||
Строка 2717: | Строка 2720: | ||
выполняет макрокоманду, которая предварительно была определена при помощи макроопределения. | выполняет макрокоманду, которая предварительно была определена при помощи макроопределения. | ||
- | После описания макроопределения, Вы можете использовать макрокоманду в любой требуемый момент времени и печатающее устройство будет "делать" все, что Вы включили в макроопределение. | + | После описания макроопределения Вы можете использовать макрокоманду в любой требуемый момент времени и печатающее устройство будет "делать" все, что Вы включили в макроопределение. |
{{anchor:e074-22}} __//Пример 22//__. Макроопределение для установки принтера в исходное положение всех стилей печати. | {{anchor:e074-22}} __//Пример 22//__. Макроопределение для установки принтера в исходное положение всех стилей печати. | ||
Строка 2753: | Строка 2756: | ||
<WRAP group 99%> | <WRAP group 99%> | ||
<WRAP half column> \\ </WRAP> | <WRAP half column> \\ </WRAP> | ||
- | <WRAP half column><WRAP justify> | + | <WRAP half column><WRAP right> |
Все правила достойного поведения давным–давно известны, | Все правила достойного поведения давным–давно известны, | ||
остановка за малым — за умением ими пользоваться. | остановка за малым — за умением ими пользоваться. | ||
<WRAP rightalign> | <WRAP rightalign> | ||
- | —//Блез Паскаль. Мысли// | + | —//Б.Паскаль. Мысли// |
</WRAP></WRAP> | </WRAP></WRAP> | ||
</WRAP></WRAP> | </WRAP></WRAP> |