![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
SuperMax |
![]() ![]()
Сообщение
#1
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 341 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Работа с палитрами
документация по палитрам тут оба регистра доступны по записи и чтению, сохранение палитры осуществляется по записи в 177236 пример изменения дефолтной палитры RGB Код SetPal1: mov #177234,R0 mov #177236,R1 mov #256.,(R0) ; адрес палитры mov #10,(R1) ; значение палитры - был черный фон - теперь темно-синий inc (R0) mov #15446,(R1) ; значение палитры - был синий - стал - зеленый inc (R0) mov #77454,(R1) ; значение палитры - был зеленый - стал желтый inc (R0) mov #46614,(R1) ; значение палитры - был красный - стал коричневый return загрузка палитры 256 цветов Код mov #177234,R0 ; установка палитры mov #177236,R1 mov #newpal,R2 mov #256.,R3 clr R4 $rp0: mov R4,(R0) mov (R2)+,(R1) inc R4 sob R3,$rp0 newpal - метка массива палитры 256 цветов (256 слов) -------------------- Живы будем - Не помрем !
|
![]() ![]() |
SuperMax |
![]()
Сообщение
#2
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Root Admin Сообщений: 6 341 Регистрация: 7.1.2006 Из: Красноярск Пользователь №: 1 ![]() |
Особенности программирования под AZБК
постараюсь подсветить моменты, которые могут быть не особо заметны, но важны 1. Включение/Выключение кадрового таймера 60Гц правильное включение Код bic #4,@#177346 ; 60Гц таймер! bis #10,@#177346 ; пуск таймера 60Гц безусловный (дабы не делать ветвлений в заисимости от машины) те я явно гашу бит 2 ибо он может остаться от какой-то другой программы которая включала 48Гц таймер те я задаю что мы хотим включить таймер 60Гц и следующим BIS-ом его включаем правильное выключение Код bic #10,@#177346 ; тормозим таймер 2. Пример входа/выхода из программы один из способов - сохранение регистров которые мы будем крутить - в стеке Код mov @#177230,-(SP) mov @#177232,-(SP) mov @#177324,-(SP) mov @#177326,-(SP) mov @#100, -(SP) ; сохраняем старые перехватчики mov @#102, -(SP) mov @#177340, -(SP) ; сохраним настройки памяти mov @#177342, -(SP) mov @#177344, -(SP) mov @#177352, -(SP) mov @#177346, -(SP) пояснение - вот это mov @#177352, -(SP) обеспечивает сохранение последней конфигурации памяти БК11М записанной в 177716 теперь мы хотим использовать память в окне 120000-137777 соответственно правильная последовательность действий Код mov #14020,@#177716 ; отключим оперативку в верхнем окне в БК11М bis #6000,@#177340 ; дополнительно включим окна 120 130 bic #6000,@#177342 ; выключм R/O если оно там было поясню - #14020,@#177716 командует БК11М что ей надо отключить окно 1 и подключить внешнее ПЗУ, которого фактически нет и окно получается свободным для подключения туда оперативки AZБК и вот только после этого мы явно активируем окна 120 130 ! такой подход обеспечит использование этого окна на абсолютно любой БК - вне зависимости от доработки окна 1 Если ПО работает со скролами - надо сбросить их на первоначальное значение или вообще вернуть их из стека если сохранение было (это будет полезно для программ под RT11 тк там вертикальный скрол возможен в консоли) Код clr @#177250 ; сбросим скролы на начальное значение clr @#177252 ; сбросим скролы на начальное значение пример возврата из стека настроек Код ; возврат настроек mov (SP)+,@#177346 mov (SP)+,@#177716 mov (SP)+,@#177344 mov (SP)+,@#177342 mov (SP)+,@#177340 mov (SP)+,@#102 mov (SP)+,@#100 mov (SP)+,@#177326 mov (SP)+,@#177324 mov (SP)+,@#177232 mov (SP)+,@#177230 JMP @#100000 -------------------- Живы будем - Не помрем !
|
![]() ![]() |
Текстовая версия | Сейчас: 22.6.2025, 5:15 |