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

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


Пусть перед
вызовом этой подпрограммы регистры D0 и D1 содержат X и Y координаты
текста, а регистр A1 содержит адрес блока данных текста:
PrintText = -216

...
print:

move.l intbase(PC),A6 ;база intuition.library

move.l windowhd(PC),A0 ;идентификатор окна

move.l 50(A0),A0 ;адрес порта RastPort

jsr PrintText(A6) ;выводим текст

rts
7.7. Работа с графикой.
В этом пункте мы рассмотрим функцию библиотеки intuition.library, которая
позволяет выводить произвольные графические изображения в окна Intuition.
Под графическим изображением мы будем понимать прямоугольную область,
содержащую графическую информацию в обычном побитовом формате (каждому
пикселу области соответствует один бит).
Размеры изображений могут варьироваться, однако для задания больших
изображений требуется слишком громоздкий текст (на практике графические
изображения редко задаются с помощью директив типа dc.l, вместо этого
используется директива ассемблера incbin, которая позволяет включать в код
программы двоичные файлы). По этой причине мы будем рассматривать изображения
небольших размеров (32x16 точек - около 3x1 см.).
Для вывода изображения в произвольное окно Intuition может использоваться
функция DrawImage (смещение -114 в intuition.library). Параметры у этой
функции следующие:
в A0 - адрес порта окна (RastPort), см. предыдущий пункт
в A1 - адрес блока данных, определяющего изображение
в D0 - X - координата изображения (левого верхнего угла)
в D1 - Y - координата изображения
Рассмотрим простую подпрограмму вывода изображения в окно Intuition (будем
предполагать, что регистры D0 и D1 содержат координаты изображения, а
регистр A1 содержит адрес графической структуры):
DrawImage = -114

...
draw: ;* нарисовать изображение (Image)

move.l intbase(PC),A6 ;база intuition.library

move.l windowhd(PC),A0 ;идентификатор окна

move.l 50(A0),A0 ;адрес порта RastPort

jsr DrawImage(A6) ;рисуем изображение

rts
Теперь рассмотрим структуру блока данных, описывающего изображения.
Первые два слова определяют смещения (по X и по Y) изображения относительно
заданных в D0 и D1 координат:
image:

dc.w 0,0 ;смещение изображения

Следующие два слова определяют ширину и высоту изображения в пикселах:
dc.w 32,13 ;ширина и высота изображения

Следующее слово задает число битпланов для вывода изображения.

 

AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.

 

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