Программирование на Ассемблере
Например, для проверки нажатия кнопки джойстика можно использовать
следующий фрагмент программы: tst.b $BFE001 ;кнопка нажата?
bpl fire ;да! Здесь команда tst.b служит для проверки знакового бита регистра $BFE001, а
так как знаковый бит (бит 7) как раз является флагом состояния кнопки
джойстика, то следующая команда ветвления сработает, если кнопка была
нажата (так как в этом случае бит 7 равен нулю и содержимое $BFE001
положительно). Вот пример законченной программы для проверки состояния джойстика: ;(5,3C) fire button & joy difference test:
bsr.s run ;тестовая подпрограмма
tst.b $BFE001 ;проверка нажатия кнопки
bpl.s fire ;ветвление, если кнопка нажата
bsr.s test ;\"вечный\" цикл joy = $DFF00C
run:
move D7,D6 ;старое содержимое порта в D6
move joy,D7 ;новое содержимое в D7
sub D7,D6 ;разность в D6
bsr.s run ;rts в случае SEKA fire:
nop ;место для контрольной точки end
5.4. Работа со звуком. Amiga имеет достаточно развитое hardware для генерации звуков. В состав
библиотек операционной системы входит множество подпрограмм для работы со
звуком, однако они представляют интерес в основном для программистов на C
или BASIC\'е, мы же обсудим программирование звука на самом низком уровне -
на уровне hardware. Все звуковые функции в Amiga обеспечиваются чипом Paula, доступ к которому
осуществляется через специальные регистры. Ясно, что никакой язык
программирования высокого уровня и никакая библиотека функций не могут
предоставить Вам больше возможностей, чем непосредственное программирование
чипа Paula.
Как же Amiga воспроизводит звук? Paula использует механизм DMA (Direct
Memory Access - прямой доступ к памяти) для доступа к звуковым данным.
|