ZX-Ревю 1996 №4-5 1996 г.

Этюды - процедура опроса клавиатуры.


© А. Шокало, г. Тернополь.

В ZX 95/4, в этюдах, прочитал статью о процедурах KEY-INPUT. Хорошее начинание. Алексей Артамонов предложил свою процедуру опроса клавиатуры. Сейчас я работаю над одной небольшой игрушкой, и там я применил такой же метод, хотя сама процедура у меня больше. Вы говорите, что эта программа "явно не удовлетворяет требованиям, предъявляемым к такого рода процедурам". Так вот можно сделать по другому. По очереди запуская процедуры и накладывая результаты друг на друга (OR). Но зачем делать управление от нескольких интерфейсов. Ведь в таком варианте процедуры может быть случай, когда указатель должен передвинуться вверх, вниз, влево и вправо одновременно, и при этом нажата клавиша огонь.

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

совместно с процедурой Алексея. Она предназначена для выбора клавиш. Et я тоже использую в своей игре.

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

; Redefine keys (C) FREE Group 1995

BC,#7FFE A, (C) %11111 %11111 NZ,KEY_PR

B

C,KEY_L REDEF %11111 L,A H, B

REDEF KEY L

LD

IN

AND

CP

JR

SCF

RR

JR

JR

XOR

LD

LD

RET

KEY PR

Но если Вы предлагаете пользователю выбрать клавиши, то нужно показывать, какую именно он нажал. Поэтому у меня есть процедура, которая, по выходным данным предыдущей, в регистре А выдает код символа на данной клавише.

TRANSF CALL COUNN

LD

LD

SUB

LD

LD

XOR

CALL

E,A A, 4 E

E,A A, H 255 COUNN

LD D,A

LD A, 7

SUB D

SLA E

SLA E

SLA E

ADD A,E

LD E,A

LD D, 0

LD HL,#2 05

ADD HL, DE

LD A,(HL) RET

PUSH BC

LD B, 0 RRA

JR C,COU_E

INC B

JR COU_L

LD A, B

POP BC RET

Данная программа просто делает необходимые пересчеты, и по таблице в ПЗУ выбирает код нажатой клавиши.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Всё о музыке - Отечественные синглы.
RPG "Demo Scene" (tm) by Аdok - Пoздрaвляem вac c пoкyпкoй "Дemo Сцeнa" (tm), camoй пocлeднeй и лyчшeй рoлeвoй игры.
Планета Шелезяка - схема Vicomm Модема.
CC'999 - Chaos Construction'999 - Хроника событий и впечатления о былом.
Будущее Спектрума - О необязательности развития аппаратного обеспечения.

В этот день...   26 апреля