К основному контенту

ZX EVO: Выводим графику средствами DMA

ZX EVO:  Выводим графику средствами DMA

DMA (англ. direct memory access) кидает данные со скоростью 7мб/c. 

Запустить исходник процедуры в XAS можно тут.


 LTEXT "TSCONFI2"; грузим данные портов
 ORG 32768
 LCODE "src"; грузим нашу картинку
 ORG 26000
 

 LD BC,DMASADH;  указываем откуда брать нашу картинку, старший байт
 LD A,#80
 OUT (C),A
 LD BC,DMASADL;  указываем откуда брать нашу картинку, младший байт
 LD A,#00
 OUT (C),A
 LD BC,DMASADX;  с какой страницы памяти брать картинку
 LD A,#02
 OUT (C),A

 LD BC,DMADADH;  указываем куда отправляем нашу картинку, старший байт
 LD A,#40
 OUT (C),A
 LD BC,DMADADL;  указываем куда отправляем нашу картинку, младший байт
 LD A,#00
 OUT (C),A
 LD BC,DMADADX;  в какую страницу отправляем
 LD A,#05
 OUT (C),A

 LD BC,DMALEN; размер блока памяти который кидаем
 LD A,#7F
 OUT (C),A
 LD BC,DMANUM; кол-во блоков
 LD A,#1A
 OUT (C),A

 LD BC,DMACTR;  собственно кидаем картинку на экран
 LD A,%00000001
 OUT (C),A
 RET


 Размер блока может быть 512 байт, число в регистре "А" на самом деле удваивается. У меня там стоит число #7F, которое на самом деле задает блок в 256 байт. 

 Как задать выравнивание для блоков? 

 Например:  LD A,%00011001 - будет кидать данные не построчно, а квадратами, размер которых указан в в портах  DMALEN х DMANUM. Каждая последующая линия автоматически будет делать + 512 байт, что составляет одну строчку экрана при режиме 256 color. LD A,%00010001 при режиме 16 color. 

Комментарии

Отправить комментарий

Популярные сообщения из этого блога

Слободчиков С.С. Программируем под TSConfig ZXSpectrum

 Учебное пособие для тех кто хочет программировать под TSConfig , но не знает как начать.  Книга написана так, будто мы делаем компьютерную игру, и по ходу её создания объясняем как устроена система. Для вашего удобства слева есть небольшое меню-оглавление. Также необходимый софт и документацию вы можете скачать тут: https://boosty.to/zxevolution

ZXEVO: Вывод спрайта в TS-CONFIG

ZXEVO: Вывод спрайта в TS-CONFIG    Процедура вывода спрайта на ZXEVO под TSCONFIG адаптированная для отладчика XAS. Файл с портами  TSCONFI2  на диске  тут . Также на диске есть пример кода вывода спрайта SPRITE.XAS и тестовый ковер со спрайтами I.C                      LTEXT “TSCONFI2”;   подгружаем файл со списком портов                 ORG 26000 Sprite          LD   BC , SGPAGE ;   страница памяти где находятся ваши спрайты                  LD   A ,# C 0                  OUT  ( C ), A                ...

Battle City под TS-CONF

В общем мой эксперимент по созданию игры на железе, да на старом софте закончился и весьма удачно. Игра Battle City доделана, и почти без глюков. Спасибо огромное людям которые мне помогали, а именно: TS-Conf   (информационная поддержка) Nik-o   (музыка и звуки к игре) Black Cat (тестил игру) Sergei Smirnov (тоже немного потестил + информ. поддержка) Игру вы можете скачать тут:  http://pmc-wagner.su Сразу скажу, что сделал две версии, с разной палитрой. Первая версия - это игра с оригинальной палитрой Dandy (Famicom), но с ней могут быть проблемы на некоторых мониторах в силу технических особенностей машины. Вторая версия для тех у кого голая Eva без Vdac. Цвета урезаны, да палитра некрасивая, зато монитор не рябит.  Видео отчет по игре:    Технические детали:  Игра вышла под: TS-Config.  Разрешение: 320х240 при 16 цветах на точку.  Количество миссий: 32  Игроков: 2   Особенности игры: Тайлы: кирпичи, лес, бетон, вода, песок (пос...