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

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


msx:basic_dialogue_programming_language:104

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:basic_dialogue_programming_language:104 [2023-02-05 12:29]
GreyWolf
msx:basic_dialogue_programming_language:104 [2023-02-19 16:26] (текущий)
GreyWolf
Строка 4: Строка 4:
 {{anchor:​n104}} {{anchor:​n104}}
 ====== 1.4. Использование ловушек ====== ====== 1.4. Использование ловушек ======
-FIXME 
  
 <WRAP group> <WRAP group>
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
-<WRAP half column><​WRAP ​justify>+<WRAP half column><​WRAP ​right>
 ... И тут Пух все понял. Они с Пятачком попались ... И тут Пух все понял. Они с Пятачком попались
 \\ в Хитрую Ловушку для Пухов, которую в отместку \\ в Хитрую Ловушку для Пухов, которую в отместку
Строка 14: Строка 13:
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​Отрывок из неопубликованной главы повести —//​Отрывок из неопубликованной главы повести
-\\ А.Милн "​Винни-Пух и все-все-все"//​+\\ А.Милн "​ВинниПух и всевсевсе"//​
 </​WRAP></​WRAP>​ </​WRAP></​WRAP>​
  
Строка 33: Строка 32:
 POP  HL        ; POP  HL        ;
 </​code>​ </​code>​
-При включении компьютера подпрограмма-ловушка содержит только ​ команду возврата (RET). Вы //​можете//​ заменить эту команду на команду перехода (JP) к подпрограмме,​ которая написана Вами на машинном языке.+При включении компьютера подпрограммаловушка содержит только команду возврата (RET). Вы //​можете//​ заменить эту команду на команду перехода (JP) к подпрограмме,​ которая написана Вами на машинном языке.
  
-<WRAP centeralign>​В этом случае о ловушке говорят,​ что она ​ //​обрабатывается//​.</​WRAP>​+<WRAP centeralign>​В этом случае о ловушке говорят,​ что она //​обрабатывается//​.</​WRAP>​
  
 Таким образом,​ Вы можете косвенно изменять ROM и вводить //​новые//​ операторы! Приведенный ниже рисунок показывает,​ что означает термин "​обработать"​ ловушку. Таким образом,​ Вы можете косвенно изменять ROM и вводить //​новые//​ операторы! Приведенный ниже рисунок показывает,​ что означает термин "​обработать"​ ловушку.
Строка 62: Строка 61:
  
 {{anchor:​e1040-01}} {{anchor:​e1040-01}}
-__//​Пример 1.//__ //​Отмена// ​ действия клавиши <​key>​STOP</​key>​.+__//​Пример 1.//__ //​Отмена//​ действия клавиши <​key>​STOP</​key>​.
  
-При //​выполнении программы//​ на  языке [[msx:​basic:​|]] клавиатура постоянно опрашивается (сканируется). Нажатие ​ клавиши порождает код, который записывается в буфер клавиатуры (начинающийся с адреса &HF55E в рабочей области). ​ До этого код нажатой клавиши временно записывается в слово NEWKEY, начинающееся с адреса &HFBE5.+При //​выполнении программы//​ на языке [[msx:​basic:​|]] клавиатура постоянно опрашивается (сканируется). Нажатие клавиши порождает код, который записывается в буфер клавиатуры (начинающийся с адреса &HF55E в рабочей области). До этого код нажатой клавиши временно записывается в слово NEWKEY, начинающееся с адреса &HFBE5.
  
 Регистр А микропроцессора необходимо загрузить значением Регистр А микропроцессора необходимо загрузить значением
Строка 91: Строка 90:
 Затем осуществим переход на ловушку с именем KEYKOD, расположенную по адресу &HFDCC . Затем осуществим переход на ловушку с именем KEYKOD, расположенную по адресу &HFDCC .
  
-Обычно ловушка занимает 5 байтов памяти,​ содержащих только команду ​ ассемблера RET (ее код &HC9). Введем вместо нее переход на подпрограмму //​обработки ловушки//​. Эта подпрограмма будет действовать только при нажатии клавиши <​key>​STOP</​key>​.+Обычно ловушка занимает 5 байтов памяти,​ содержащих только команду ассемблера RET (ее код &HC9). Введем вместо нее переход на подпрограмму //​обработки ловушки//​. Эта подпрограмма будет действовать только при нажатии клавиши <​key>​STOP</​key>​.
  
 \\ {{.examples:​1040-01.bas|}} \\ [[+tab|wmsxbpge>​1040-01.bas]] \\ {{.examples:​1040-01.bas|}} \\ [[+tab|wmsxbpge>​1040-01.bas]]
Строка 106: Строка 105:
 100 'П о д п р о г р а м м а  о б р а б о т к и  л о в у ш к и 100 'П о д п р о г р а м м а  о б р а б о т к и  л о в у ш к и
 120 DATA FE,3C     :'​ CP  3C        ;​Сравниваем константу 3Ch с 120 DATA FE,3C     :'​ CP  3C        ;​Сравниваем константу 3Ch с
-                                    ;​содержимым регистра A +                                    ;​содержимым регистра A
 130 DATA C0        :' RET NZ        ;  "​нет"​ ──▶ выход 130 DATA C0        :' RET NZ        ;  "​нет"​ ──▶ выход
 140 DATA 3E,FD     :'​ LD  A,FD      ;  A=FD 140 DATA 3E,FD     :'​ LD  A,FD      ;  A=FD
Строка 116: Строка 115:
  
  
-Выполните эту программу:​ обратите внимание на тот факт,​что нажатие клавиши <​key>​STOP</​key>​ производит такой же эффект,​ как и нажатие ​ клавиш ​ <​key>​CTRL + STOP</​key>​ в //​командном//​ режиме.+Выполните эту программу:​ обратите внимание на тот факт,​что нажатие клавиши <​key>​STOP</​key>​ производит такой же эффект,​ как и нажатие клавиш <​key>​CTRL + STOP</​key>​ в //​командном//​ режиме.
  
 Подпрограмма обработки ловушки посылает значение Подпрограмма обработки ловушки посылает значение
Строка 122: Строка 121:
 &​H11111101=&​HFD &​H11111101=&​HFD
 </​code>​ </​code>​
-по адресу &HFBEB (шестая строка матрицы клавиатуры),​имитируя тем самым нажатие клавиши <​key>​CTRL</​key>​. При этом нажатие клавиши <​key>​STOP</​key>​ будет прочитано как одновременное нажатие клавиш <​key>​CTRL</​key>​ и <​key>​STOP</​key>,​что будет обработано ​ в [[msx:​basic:​|]] уже по обычным правилам.+по адресу &HFBEB (шестая строка матрицы клавиатуры),​имитируя тем самым нажатие клавиши <​key>​CTRL</​key>​. При этом нажатие клавиши <​key>​STOP</​key>​ будет прочитано как одновременное нажатие клавиш <​key>​CTRL</​key>​ и <​key>​STOP</​key>,​что будет обработано в [[msx:​basic:​|]] уже по обычным правилам.
  
 Удалите вышеприведенную программу и введите новую программу:​ Удалите вышеприведенную программу и введите новую программу:​
Строка 186: Строка 185:
 {{anchor:​e1040-04}} {{anchor:​e1040-04}}
 __//​Пример 4//__. __//​Пример 4//__.
-Программа позволяет на слух оценивать частоту обращений ​ к ловушкам по маскируемым прерываниям. Во время очередного прерывания по таймеру издается звонок-сигнал. Таким образом ловушка "​прозванивается"​.+Программа позволяет на слух оценивать частоту обращений к ловушкам по маскируемым прерываниям. Во время очередного прерывания по таймеру издается звоноксигнал. Таким образом ловушка "​прозванивается"​.
 \\ {{.examples:​1040-04.asm|}} \\ [[+tab|wmsxbpge>​1040-04.asm]] \\ {{.examples:​1040-04.asm|}} \\ [[+tab|wmsxbpge>​1040-04.asm]]
 <​code>​ <​code>​
Строка 218: Строка 217:
         DW 0                 ;         DW 0                 ;
         DW 0                 ;         DW 0                 ;
-NACH:   XOR A                ; +NACH:   XOR A                ;
         CALL 00C3H           ; Очистка экрана         CALL 00C3H           ; Очистка экрана
         CALL 00CCH           ; Выключение функциальных клавиш         CALL 00CCH           ; Выключение функциальных клавиш
Строка 274: Строка 273:
                        ;                        ;
 GASI MACRO             ; GASI MACRO             ;
-    BCALL  041H        ; В ы к л ю ч е н и е   ​экрана+    BCALL  041H        ; В ы к л ю ч е н и е  экрана
     ENDM               ;     ENDM               ;
                        ;                        ;
 GORI MACRO             ; GORI MACRO             ;
-    BCALL  044H        ; В к л ю ч е н и е   ​экрана+    BCALL  044H        ; В к л ю ч е н и е  экрана
     ENDM               ;     ENDM               ;
                        ;                        ;
 NETEND MACRO           ; NETEND MACRO           ;
     RST    030H        ;     RST    030H        ;
-    DEFB   ​08FH ​       ; Отключение от  с е т и  (только для MSX-2)+    DEFB   ​08FH ​       ; Отключение от с е т и (только для MSX-2)
     DEFW   ​04016H ​     ;     DEFW   ​04016H ​     ;
     ENDM               ;     ENDM               ;
Строка 377: Строка 376:
      ​CALL ​ VRAM        ; атуры.      ​CALL ​ VRAM        ; атуры.
      ​... ​              ; Здесь может находиться Ваша программа.      ​... ​              ; Здесь может находиться Ваша программа.
-     ​... ​              ; Например,​ программа движения фона ​ или ​ движения+     ​... ​              ; Например,​ программа движения фона или движения
      ​... ​              ; других спрайтов.      ​... ​              ; других спрайтов.
      ​... ​              ;      ​... ​              ;
msx/basic_dialogue_programming_language/104.1675589363.txt.gz · Последние изменения: 2023-02-05 12:29 — GreyWolf