IPB

Здравствуйте, гость ( Вход | Регистрация )

> Программирование под AZБК, методики использования возможностей AZБК
SuperMax
сообщение 3.11.2023, 16:33
Сообщение #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
сообщение 17.12.2023, 13:23
Сообщение #2


Администратор
*****

Группа: Root Admin
Сообщений: 6 341
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1



Работа с блиттером, блиттер доступен начиная v15b9 прошивки
2024-05-26

Документация ТУТ

Для формирования команды можно использовать калькулятор команд блиттера

UDP 2025-01-24: видео перезалито, в MP4 и 1024х786 60fps

особенности
- код универсальный - те будет работать на любой БК(10/11 пофиг на дорабоки)
- код демонстрационный - те я не занимаюсь оптимизацией или красотой кода
- код с корректным возвратом в операционку
перезаливка кода и измененного видео от 2024-02-17


0. Заполнение константой - команда 0
заполнение экрана разноцветными прямоугольниками - проверка работы команды копирования константы

видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  0.random_rectangles_2025_01_19.mp4 ( 4.79 мегабайт ) Кол-во скачиваний: 103


исходники
Прикрепленный файл  BLTTST0_2024_05_08.RAR ( 1.86 мегабайт ) Кол-во скачиваний: 1080



1. Копирование спрайта безусловное - команда 11
производится копирование спрайта хранящегося линейно в прямоугольную позицию в экране

видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  1.horse_is_runnig_2025_01_19.mp4 ( 4.53 мегабайт ) Кол-во скачиваний: 100

исходники
Прикрепленный файл  BLTTST1_2024_05_08.RAR ( 1.88 мегабайт ) Кол-во скачиваний: 1110



2. Копирование спрайта c наложением по SRC - команда 21

видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  2.horse_is_runnig_overlay_2025_01_19.mp4 ( 4.96 мегабайт ) Кол-во скачиваний: 186

исходники
Прикрепленный файл  BLTTST2_2024_05_08.RAR ( 1.88 мегабайт ) Кол-во скачиваний: 1047



3. Копирование спрайта безусловное, с анимацией и движением (команды 0 и 11)
сначала тут идет отчистка экрана при помощи ручного запуска блиттера, затем по таймеру идет

видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  3.ball_bounces_off_the_screen_2025_01_19.mp4 ( 8.13 мегабайт ) Кол-во скачиваний: 109

исходники
Прикрепленный файл  BLTTST3_2024_05_08.RAR ( 1.97 мегабайт ) Кол-во скачиваний: 1039


обращаю внимание на пример ручного запуска блиттера
Код

;*********** ручной запуск блиттера v15b8 и далее *****************
                mov     #2000,@#177272; страница с блоком команд блиттера
                mov     #40000,@#177270; включаем ручной режим блиттера
                bis     #1,@#177270; количество команд
                bis     #10000,@#177270; стартуем блиттер
; ********** ожидание выполнения команды блиттера ************
$w1:            bit     #100000,@#177270; ждем завершения выполнения
                bne     $w1



4. Копирование спрайта с восстановлением фона (команды 11 21 и 42)

видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  4.ball_bounces_off_the_screen_with_background_2025_01_19.mp4 ( 11.34 мегабайт ) Кол-во скачиваний: 109

исходники
Прикрепленный файл  BLTTST4_2024_05_08.RAR ( 1.99 мегабайт ) Кол-во скачиваний: 1033


5. Подкладывание под фон (команды 11 33 и 42)

видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  5.ball_bounces_off_the_screen_under_background_2025_01_19.mp4 ( 14.05 мегабайт ) Кол-во скачиваний: 92

исходники
Прикрепленный файл  BLTTST5_2024_05_08.RAR ( 1.97 мегабайт ) Кол-во скачиваний: 1087


6. Подкладывание под фон (команды 11 33 и 42) + вращение



видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  6.ball_bounces_off_the_screen_under_background_2_2025_01_19.mp4 ( 17.3 мегабайт ) Кол-во скачиваний: 105

исходники
Прикрепленный файл  BLTTST6_2024_05_08.RAR ( 1.97 мегабайт ) Кол-во скачиваний: 1127



7. Подкладывание под фон (команды 11 33 и 42) + дрожание экрана - горизонтальный и вертикальные скроллинги


видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  7.ball_bounces_off_the_screen_under_background_and_screen_shake_2025_01_19.mp4 ( 15.2 мегабайт ) Кол-во скачиваний: 99

исходники
Прикрепленный файл  BLTTST7_2024_05_08.RAR ( 1.97 мегабайт ) Кол-во скачиваний: 1131



8. Заполнение константой - команда 0, выжимаем скорость!
заполнение экрана разноцветными прямоугольниками - проверка работы команды копирования константы - основное отличие от примера 0 - тут мы не по кадровому таймеру работаем - а выжимаем максимальную скорость !

видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  8.random_rectangles_super_fast_2025_01_19.mp4 ( 29.45 мегабайт ) Кол-во скачиваний: 92

исходники
Прикрепленный файл  BLTTST8_2024_05_08.RAR ( 1.87 мегабайт ) Кол-во скачиваний: 1099

тут организована конвейерная обработка:

0- готовим изначальную команду
1- запускаем готовую команду
2- ждем пока буфер команды будет считан в буфер блиттера
3- готовим данные для новой команды
4- ждем завершения работы блиттера
идем на п1

Код

; вариант с ручным запуском - выжимаем максимальную скорость
                mov     #2000,@#177272; страница с блоком команд
                mov     #40000,@#177270; включаем ручной режим блиттера
                bis     #1,@#177270; количество команд

;*********** ручной запуск блиттера v15b8 и далее *****************
main:           bis     #10000,@#177270; стартуем блиттер
; ********** ожидание считываения команд блиттера в  буфер блиттера ************
$w0:            bit     #10000,@#177270; ждем пока буфер читается
                bne     $w0
; ******************************************************************
; можно начинать готовить новую команду!
; рандомный цвет
                mov     @#177550,R0
                bic     #177400,R0
                mov     R0,@#120016
;5 слово
;младший байт - длина спрайта в словах по горизонтали минус 1
;старший байт - количество cтрок
                mov     @#177550,R0
                bic     #174370,R0
                inc     R0
                mov     R0,@#120011;
;6 слово - инкрементация адреса назначения после копирования строки спрайта
; если мы хотим вывести спрайт шриной 8. пикселей в строку длиной 256. байт
;то мы должны указать инкрементацию - 128.-3.=125
                mov     #128.,R1
                bic     #177700,R0
                sub     R0,R1
                mov     R1,@#120012;
; позиция рандомная
                mov     @#177550,R0
                bic     #100000,R0
                mov     R0,@#120004

; ********** ожидание выполнения команды блиттера ************
$w1:            bit     #100000,@#177270; ждем завершения выполнения
                bne     $w1
; ******************************************************************


9. Применение команды 51 - подкладывание под фон (команды 11 33 и 42) + 51ая команда при столкновении с границами экрана

видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  9.ball_bounces_off_the_screen_under_background_and_white_fill_2025_01_19.mp4 ( 14.51 мегабайт ) Кол-во скачиваний: 118

исходники
Прикрепленный файл  BLTTST9_2024_05_16.RAR ( 1.97 мегабайт ) Кол-во скачиваний: 987



10. Подкладывание под фон (команды 11 33 и 42), но с применением координаты Y

видео - качественный видеозахват 1024х768 60fps
Прикрепленный файл  A.ball_bounces_off_the_screen_under_background_with_Y_coord_2025_01_19.mp4 ( 14.9 мегабайт ) Кол-во скачиваний: 91

исходники
Прикрепленный файл  BLTTSTA_2024_06_05.RAR ( 1.97 мегабайт ) Кол-во скачиваний: 1034


11. Зеркалирование по вертикали горизонтали и одновременно
* для прошивок 19b1 и старше
это детальный пример вывода спрайта в 4х вариантах зеркалирования

фото
Прикрепленное изображение

исходники
Прикрепленный файл  BLTTSTB_2025_05_26__1.RAR ( 1.9 мегабайт ) Кол-во скачиваний: 16




12. Растягивание по-вертикали, иначе говоря удвоение строк (копирование спрайта безусловное, с анимацией и движением - команды 0 и 11)
пример аналогичен примеру №3, но тут видеорежим 246х384 cтроки и каждая строка спрайта повторяется дважды

принцип повторения крайне прост - у нас есть строчное смещение
при длине строки в 128. слов, мы можем задать смещение больше строки
иначе говоря можно выводить спрайт черезстрочно
тут соответственно спрайт сначала стирается черезстрочно, затем выводится черезстрочно

для движения по вертикали я использую координату Y - ее изменение на 1 вызывает смещение на 2 строки

Прикрепленный файл  BLTTSTC_2025_05_25__3.RAR ( 1.97 мегабайт ) Кол-во скачиваний: 19




Образ диска с примерами
Прикрепленный файл  AZKV.RAR ( 406.82 килобайт ) Кол-во скачиваний: 1021



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 21.6.2025, 6:31