Amiga. Вычислительная техника
Меню сайта
Главная
Amiga
Amiga Corporation
Модельный ряд
История развития
Аппаратная платформа
Операционные системы
Эмуляция
AMIGA # 1
Программирование на Ассемблере
Организация процессоров
Методы защиты информации
Компьютерные новеллы
Боятся ли компьютеры адского пламени?
Виртуальная реальность
Корпоративные сети
Телекоммуникационные сети
Архитектура ЭВМ
ЕС ЭВМ
Рождение ЭВМ
Компьютер
Гарвардская архитектура
Современные высокопроизводительные компьютеры
Дорога в будущее
Vista
Инфоpматика
ЭВМ
Операционные системы
Linux
Windows
Освой компьютер
Макинтош
Набор текста
Поколения
Компьютерная грамотность
Устройство компьютера
Железо
Графика
Звук
Ремонт
Сети
Программирование
Информационные технологии
Криптография
Микроэлектроника
Истории
 
 

Освой компьютер


Например:
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: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.

 

© 2010 Amigo. All Rights Reserved
Создание сайтов ЕкатеринбургШаблоны сайтовПоиск товаров - справочник цен, каталог магазинов, прайс-листыБесплатные шаблоны дизайна компьютерных сайтов
Hosted by uCoz