TS-Conf F.A.Q.

Документация, FAQ-и
Аватара пользователя
VBI
Сообщения: 1957
Зарегистрирован: Пн, 03.06.2013 09:20:29

Re: TS-Conf F.A.Q.

Сообщение VBI »

ну так
; задаем адрес где лежат спрайты ($8000, это то же самое что 0000, потому что дма видит только смещение внутри 16к страницы)
это оно и есть.
ты из паги в пагу пересылаешь, а не из абсолютного адреса
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3632
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: TS-Conf F.A.Q.

Сообщение g0blinish »

VBI писал(а):ты из паги в пагу пересылаешь, а не из абсолютного адреса

а как с $4000 ?
[x] No Screenshot
Аватара пользователя
VBI
Сообщения: 1957
Зарегистрирован: Пн, 03.06.2013 09:20:29

Re: TS-Conf F.A.Q.

Сообщение VBI »

смотри, для дма не используются старшие 2 бита в адресе.
т.е. адрес всегда дма видит как 00хх хххх хххх хххх

ну и ей что 4000, что 8000, что 0000, что с000 - всё 0000
другое дело - номер паги.
Аватара пользователя
AndyD
Сообщения: 280
Зарегистрирован: Чт, 21.05.2015 21:32:38

Re: TS-Conf F.A.Q.

Сообщение AndyD »

У тебя если #4000 лежит в паге #05 то просто для дма вбиваешь пагу 5 и все,адрес #4000=#8000=#c000=#0000 ,то-есть пересыл в пагу 5 по этим адресам = #4000,старший не учитывается как будто для дма страница одна размером #3fff.
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3632
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: TS-Conf F.A.Q.

Сообщение g0blinish »

смотрите, оно и понятно. неясно, где задается адрес.
я сов7 запутался.
[x] No Screenshot
Аватара пользователя
TS-Labs
Сообщения: 5379
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: TS-Conf F.A.Q.

Сообщение TS-Labs »

У тебя в голове каша из адреса з80 и физического адреса.
Еще раз (пишу просто так, не надеясь на взаимность и понимание):

0. Физическая память (4 мегабайта), условно разбита на паги по 16 килобайт.

1. Z80
Работает с адресами в диапазоне 64кБ. Этот диапазон разбит на 4 окна по 16кБ.
Какая пага физической памяти видна в каждом окне задают регистры Рage0..3.

2. DMA
Работает с физическим адресом в диапазоне 4МБ (22 бит), ибо не ограничена, как проц в 64кБ.

3. Графика, спрайты
Тоже работают с физическими адресами, старшие биты адреса задаются в соответствующих регистрах паг (SGPage, TxGPage etc).
Аватара пользователя
AndyD
Сообщения: 280
Зарегистрирован: Чт, 21.05.2015 21:32:38

Re: TS-Conf F.A.Q.

Сообщение AndyD »

Адрес задаешь в регистрах источник (DMASH #1BAF и DMASL #1AAF) + пага где это находится (DMASX #1CAF), так же и приемник куда кидаешь DMADL #1DAF DMADH #1EAF DMADX #1FAF страницы переключать не надо,не нужно их включать для зетника ,переслал данные,потом для з80 включил страницу куда переслал ,а там уже все есть.

Вопрос про прерывания,VBI ответил так:ты можешь вызвать свой код сразу по завершению пересылки дма. это и будет прерыванием.
если у нас включен бит обработки прерывания от дма - то по завершению пересылки будет вызван обработчик, всё
а если этот бит выключен - то обработчик не вызывается :)
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3632
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: TS-Conf F.A.Q.

Сообщение g0blinish »

Господа, киньте пример очистки дма экрана в режиме 360х288.
[x] No Screenshot
Аватара пользователя
VBI
Сообщения: 1957
Зарегистрирован: Пн, 03.06.2013 09:20:29

Re: TS-Conf F.A.Q.

Сообщение VBI »

а чем отличается чистка памяти от чистки экрана?
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3632
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: TS-Conf F.A.Q.

Сообщение g0blinish »

VBI писал(а):а чем отличается чистка памяти от чистки экрана?


моя каша в голове понятия не имеет.
[x] No Screenshot
Аватара пользователя
psb
Сообщения: 715
Зарегистрирован: Вт, 30.12.2014 23:22:32

Re: TS-Conf F.A.Q.

Сообщение psb »

VBI писал(а):а чем отличается чистка памяти от чистки экрана?

тем что память не рисуется, а экран рисуется:)
Аватара пользователя
AndyD
Сообщения: 280
Зарегистрирован: Чт, 21.05.2015 21:32:38

Re: TS-Conf F.A.Q.

Сообщение AndyD »

g0blinish смотри у тебя в памяти лежит картинка начинается со страницы указанной VPage и идет по порядку,для 16цветной картинки 360х288=103680/2=51840 50кБайт/16кб = 4 страницы,вот и чисти от VPage до VPage+4,256цветные также но в 2раза больше страниц надо пройтись.
А там же строка 512,тогда 512х288 =4.5 страницы ,5 страниц в цикле.
Просто разница (просто памяти) и VPage,в том ,что VPage всегда должна начинаться с четной страницы основной памяти ,8 для 16цветов и четной 16 для 256цветов ,вроде так.
Последний раз редактировалось AndyD Вс, 17.01.2016 13:45:46, всего редактировалось 2 раза.
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3632
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: TS-Conf F.A.Q.

Сообщение g0blinish »

Да это я знаю, с дма не выходит. Обойдусь 320х240 штоле.
[x] No Screenshot
Аватара пользователя
AndyD
Сообщения: 280
Зарегистрирован: Чт, 21.05.2015 21:32:38

Re: TS-Conf F.A.Q.

Сообщение AndyD »

$this->spoil_pass('ld bc,#13af
ld a,#10
out (c),a
xor a
ld hl,#c000
ld (hl),a
inc l
ld (hl),a
ld b,32
loop push bc
ld hl,clear512
call copyDMA
xor a
ld (qqw+1),a
ld a,(dst0+1)
add a,#02
ld (dst0+1),a
pop bc
djnz loop
ld b,5 ;количество страниц
loop1 push bc
ld hl,clear16
call copyDMA
ld a,(vpage1+1)
inc a
ld (vpage1+1),a
pop bc
djnz loop1
ret
copyDMA ld bc,#27AF
DMA_busy in (c)
jp m,DMA_busy
;ld c,#AF
.m1 ld b,(hl)
inc hl
inc b
ret z ; JR z,dma_stats
outi
JP .m1
clear512 db #1a,0
src0 db #1b,0
vpage0 db #1c,#10
qqw db #1d,2
dst0 db #1e,0
vpage1 db #1f,#10
dl db #26,#FF ;512байт
bl db #28,#0 ;сколько блоков 512
db #27,%00000001 ;RAM (Src) is copied to RAM (Dst)
db #ff

clear16 db #1a,0
db #1b,0
vpage0 db #1c,#10
db #1d,0
db #1e,0
vpage1 db #1f,#10
dl db #26,#FF ;512байт
bl db #28,#20 ;сколько блоков 512
db #27,%00000001 ;RAM (Src) is copied to RAM (Dst)
db #ff')
Вот накидал говнокод,тоже ждал когда гуру свое оптимизированное покажут.
Аватара пользователя
VBI
Сообщения: 1957
Зарегистрирован: Пн, 03.06.2013 09:20:29

Re: TS-Conf F.A.Q.

Сообщение VBI »

AndyD, сильно жестоко. дма сама переключает страницы при транзакциях.
http://hype.retroscene.org/blog/dev/180.html

Очистка (заливка) экрана:

Код: Выделить всё

   
      ld bc,PAGE3
      ld a,Vid_page
      out (c),a
      ld hl,0      ;00 - цвет, заданный в палитре
      ld (#c000),hl
      ld hl,fill_screen
      jp set_ports

fill_screen   defb #1a,0   ;
      defb #1b,0   ;
      defb #1c,Vid_page   ;
      defb #1d,0   ;
      defb #1e,0   ;
      defb #1f,Vid_page   ;

      defb #28,200   ;
      defb #26,#ff   ;
      defb #27,%00000100    ; DMA_FILL
      db #ff


для 360х288 в fill_screen меняем

Код: Выделить всё

      defb #28,288-1   ;
      defb #26,360/2   ;
Аватара пользователя
AndyD
Сообщения: 280
Зарегистрирован: Чт, 21.05.2015 21:32:38

Re: TS-Conf F.A.Q.

Сообщение AndyD »

Так это только для обнуления 2х байт в начале VPage или вообще просто памяти что надо очистить,кстати после вызова дма есть кучка тактов пока дма работает.
RAM (Dst) is filled with word from RAM (Src) а это заменяет тот мой бред для смещения дест и сорс :ura:
Последний раз редактировалось AndyD Вс, 17.01.2016 17:28:10, всего редактировалось 1 раз.
Аватара пользователя
Koshi
Сообщения: 295
Зарегистрирован: Чт, 26.07.2012 16:41:52

Re: TS-Conf F.A.Q.

Сообщение Koshi »

MGN Group
Аватара пользователя
TS-Labs
Сообщения: 5379
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: TS-Conf F.A.Q.

Сообщение TS-Labs »

Да, на всякий случай напомню, что чистить надо прямоугольное окно экранки, а не ВСЕ паги целиком.
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3632
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: TS-Conf F.A.Q.

Сообщение g0blinish »

TS-Labs писал(а):а, на всякий случай напомню, что чистить надо прямоугольное окно экранки, а не ВСЕ паги целиком.

а как?
[x] No Screenshot
Аватара пользователя
TS-Labs
Сообщения: 5379
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: TS-Conf F.A.Q.

Сообщение TS-Labs »

Размер бурста в ширину экранки, выравнивание под режим 256/512.
Аватара пользователя
VBI
Сообщения: 1957
Зарегистрирован: Пн, 03.06.2013 09:20:29

Re: TS-Conf F.A.Q.

Сообщение VBI »

любой (произвольный) GROB :lol:
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3632
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: TS-Conf F.A.Q.

Сообщение g0blinish »

[x] No Screenshot
Аватара пользователя
AndyD
Сообщения: 280
Зарегистрирован: Чт, 21.05.2015 21:32:38

Re: TS-Conf F.A.Q.

Сообщение AndyD »

Не,ну они издеваются :crazy:
Нет чтоб объяснить по человечески ,специально делают,что бы ты не успел к конкурсу,бояться :badtease:
Аватара пользователя
g0blinish
Упырь говнофорума
Сообщения: 3632
Зарегистрирован: Вт, 18.06.2013 10:59:01

Re: TS-Conf F.A.Q.

Сообщение g0blinish »

AndyD писал(а):Нет чтоб объяснить по человечески ,специально делают,что бы ты не успел к конкурсу,бояться


это ты зря. я с Вовкиной помощью три прода вывалил:)
[x] No Screenshot
Аватара пользователя
VBI
Сообщения: 1957
Зарегистрирован: Пн, 03.06.2013 09:20:29

Re: TS-Conf F.A.Q.

Сообщение VBI »

Клёвый зощенко)
Народ, ну просто же всё
Заливаем память двумя байтами - словом.
Указываем адрес и пагу, а потом - сколько длина одной линии заливки (льёт сразу 2байта за раз, поэтому наша длина /2), и сколько таких линий всего. То что будет задействовано несколько паг сразу - не беда, дма сама перейдёт на следующую
Еще стоит учесть биты выравнивания. Т.е.задача сводится к отрисовке прямоугольника произвольного размера одним цветом.
Последний раз редактировалось VBI Пн, 18.01.2016 19:49:43, всего редактировалось 1 раз.
Ответить