Освой компьютер
Единственным параметром этой функции является адрес
вышеописанной таблицы: OpenScreen = 198 bsr openint ;открыть Intuition
bsr scropen ;открыть экран
...
scropen: ;* открыть экран
move.l intbase(PC),A6 ;база intuition.library
lea screen_defs(PC),A0 ;указатель на таблицу
;параметров
jsr OpenScreen(A6) ;открываем экран
move.l D0,screenhd ;сохраняем идентификатор
rts ;все!
...
screen_defs: ;начало таблицы параметров
После выполнения OpenScreen на дисплее появится новый экран, с которым
можно работать так же, как и с любым другим экраном Intuition. Как только
экран становится ненужным, его необходимо закрыть. Для этого используется
функция CloseScreen (смещение -66 в intuition.library), единственным
параметром которой является идентификатор закрываемого экрана: CloseScreen = -66
...
scrclose: ;* закрыть экран
move.l intbase(PC),A6 ;база intuition.library
move.l screenhd(PC),A0 ;параметр для CloseScreen
jsr CloseScereen(A6) ;закрываем экран
rts ;все!
Рассмотрим подробнее, что представляет из себя идентификатор экрана,
возвращаемый функцией OpenScreen. На самом деле этот идентификатор является
указателем на специальный блок данных, содержащий всю информацию о
созданном экране. Этот блок данных имеет достаточно сложную структуру и содержит в основном
служебную информацию, однако некоторые поля могут представлять интерес: Номер Имя Назначение
-----------------------------------------------------------------
0 (NextScreen.L) указатель на следующий экран
4 (FirstWindow.L) указатель на первое окно
8 (LeftEdge.W) координаты экрана
$A (TopEdge.W)
$C (Width.W) размеры экрана
$E (Height.W)
$10 (MouseY.W) положение указателя мыши на экране
$12 (MouseX.W)
$14 (Flags.W) флаги
$16 (Title.L) указатель на текст заголовка
$1A (DefaultTitle) заголовок по умолчанию
$28 (Font.L) указатель на таблицу символов (шрифт)
$C0 (Plane0.L) указатель на битплан 0
$C4 (Plane1.L) указатель на битплан 1
$C8 (Plane2.L) указатель на битплан 2
$CC (Plane3.L) указатель на битплан 3
Указатели битпланов могут потребоваться, например, при написании
собственной подпрограммы вывода символов.
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|