Освой компьютер
Например: cmp #$200,D6 ;WINDOWCLOSE?
beq.s ende ;да, выход Здесь производится проверка нажатия символа закрытия окна и выход, если
соответствующее событие имело место.
Если пользователь выбрал какой-либо пункт меню, в регистре D6 возвратится
значение $100 (маска, соответствующая установленному биту MENUPICK). Нам
остается только определить, какой пункт был выбран.
Информация о выбранном пункте содержится в слове, которое следует за полем
типа события в структуре IMS (смещение 24): move 24(A0),D7 Если никакой пункт никакого меню не был выбран, но была нажата и отпущена
правая кнопка мыши, в регистр D7 запишется $FFFF. Иначе D7 будет содержать
информацию о выбранном пункте, а именно: о номер меню, в которое входит выбранный пункт
о номер подменю, в которое входит выбранный пункт
о номер выбранного пункта Значение, возвращаемое в регистре D7, имеет следующий формат: биты 0-4 номер меню верхнего уровня
биты 5-10 номер пункта в меню верхнего уровня
биты 11-15 номер пункта в подменю Заметим, что нумерация начинается с нуля, так что при выборе первого пункта
первого меню в D7 возвратится ноль.
Для выделения номеров пункта, меню и подменю будем использовать следующий
код:
move D7,D5
and #$1F,D5 ;в D5 - номер меню верхнего
;уровня
lsr #5,D7
move D7,D6
and #$3F,D6 ;в D6 - номер пункта в меню
;верхнего уровня
lsr #6,D7 ;в D7 - номер пункта в подменю
cmp #$3F,D6 ;пункт меню выбран?
beq.s loop ;нет, цикл Представьте теперь, что Вы хотите создать четыре меню верхнего уровня,
каждое из которых должно содержать по 10 пунктов.
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|