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

Печать спрайта в TS CONF 256 color

 


TS-CONF по умолчанию имеет аппаратные спрайты и тайлы которые используют 16 цветов, однако это не значит, что нет возможности использовать спрайты в 256 цветов. Для того, чтобы вывести такой спрайт, нужно воспользоватся DMA в режиме BLT1. В этом режиме перекидываются любые данные если они не равны нулю. Рисуем спрайты любыми цветами, но нулевой цвет оставляем для фона который нужно будет вырезать.

Как всегда процедура и спрайты для теста тут: SPR.TRD

Ниже привожу пример процедуры:


         ORG      30000

         LD           HL,0; X COORDINATE
         LD           BC,0; Y COORDINATE

         LD           (XX),BC
LD           D,#C0; ADDRESS SPRITE IN MEMORY
LD           E,#10; START VIDEO PAGE
CALL      PERECHET; GET NUMBER PAGE
PUSH    DE
POP       HL
LD           DE,16
SBC        HL,DE
LD           DE,(XX)
ADD       HL,DE
PUSH    HL
POP       DE
LD           (PAGETO),A
LD           B,6; SPRITE SIZE X ABSCISSA
LD           C,15; SPRITE SIZE Y ORDINATE
LD           A,#C0
LD           (PAGEFR),A
LD           A,%10111001
LD           HL,49152
CALL      DMASTART
HALT
RET

 

         PERECHET;  PAGE NUMBER COUNTER
LD           A,L
AND      #3F
OR          D
LD           D,A
ADD       HL,HL
ADD       HL,HL
LD           A,H
ADD       A,E
RET

DMASTART
LD           (SIZEBC),BC
LD           (CLSDATA),A
LD           BC,DMASADH
LD           A,H
OUT       (C),A
LD           BC,DMASADL
LD           A,L
OUT       (C),A
LD           BC,DMASADX
LD           A,(PAGEFR)
OUT       (C),A
LD           BC,DMADADH
LD           A,D
OUT       (C),A
LD           BC,DMADADL
LD           A,E
OUT       (C),A
LD           BC,DMADADX
LD           A,(PAGETO)
OUT       (C),A
LD           BC,DMALEN
LD           HL,(SIZEBC)
LD           A,H
OUT       (C),A
LD           BC,DMANUM
LD           A,L
OUT       (C),A
LD           BC,DMACTR
LD           A,(CLSDATA)
OUT       (C),A
RET


SIZEBC  DW        0
CLSDATA             DB          0
PAGEFR                               DB          0
PAGETO              DB          0

XX          DW        0


Комментарии

  1. Сергей, доброго времени суток. Пожалуйста свяжитесь со мной. Имеется предложение. Skorchak@ya.ru

    ОтветитьУдалить

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

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

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

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

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   Особенности игры: Тайлы: кирпичи, лес, бетон, вода, песок (пос...

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                ...