@Kefir_Union, post #1
@teh_KaiN, post #2
@Kefir_Union, post #3
@Kefir_Union, post #3
Ja bym zacisnął zęby i zrobił to używając CPU, rozkładając to w czasie na parę klatek
@Hexmage960, post #6
@Kefir_Union, post #7
@Kefir_Union, post #9
@Hexmage960, post #6
@teh_KaiN, post #11
Więc albo czegoś nie widzę, czegoś zapomniałem albo jednak potrzebujesz jeszcze jednego blitu z mintermem D = C|A, który z kolei będzie miał maskę 0F i "shiftował w lewo" czyli ustawiasz tak duży shift żeby się bltXdat ze słowem przed chwilą odczytanym przekręcił, czyli wartość shifta... 24?
@Kefir_Union, post #13
@Hexmage960, post #14
@Kefir_Union, post #15
Zamiana wewnętrzna 32-bitowych danych przez CPU już tak łatwo nie pójdzie. Rolowanie można robić na poziomie bajtu, na poziomie niższym dochodzą dodatkowe kombinacje z przesuwaniem bitów, w sumie kilkanaście instrukcji. To nie może być szybsze niż jeden MOVE.W z tablicy, szczególnie że można ją wrzucić do FASTu.
Tak w ogóle to ma działać na CPU 020.
rotate macro move.l d0,d1 and.l \1,d0 eor.l d0,d1 lsr.l \2,d0 lsl.l \2,d1 or.l d1,d0 endm start: move.l #$f0f0f0f0,d4 move.l #$cccccccc,d5 move.l #$aaaaaaaa,d6 loop: move.l (a0)+,d0 ror.w #8,d0 swap d0 ; 16 bitów ror.w #8,d0 rotate d4,4 rotate d5,2 rotate d6,1 move.l d0,-(a1) cmpa.l a0,a1 bge.s loop rts
@Kefir_Union, post #1
@asman, post #18
@docent, post #20
@Kefir_Union, post #15
@Kefir_Union, post #21
LUT w FAST będzie szybszy ale to i tak nie rozwiązuje problemu bo trzeba jeszcze blitować zamiany kolejności słów w linii.
rotate macro move.l \1,d1 and.l \2,\1 eor.l \1,d1 lsr.l #\3,\1 lsl.l #\3,d1 or.l d1,\1 endm start: move.l #$f0f0f0f0,d4 move.l #$cccccccc,d5 move.l #$aaaaaaaa,d6 loop: move.l (a0),d0 ror.w #8,d0 swap d0 ror.w #8,d0 rotate d0,d4,4 rotate d0,d5,2 rotate d0,d6,1 move.l -(a1),d2 ror.w #8,d2 swap d2 ror.w #8,d2 rotate d2,d4,4 rotate d2,d5,2 rotate d2,d6,1 move.l d2,(a0)+ move.l d0,(a1) cmpa.l a0,a1 bgt.s loop rts
@Hexmage960, post #23
@Kefir_Union, post #24
Mam animację, która nie mieści się w chip. Jeśli mam ją odwracać kopiując z chip do chip to już lepiej zamieścić w chip animację z klatkami obciętymi do połowy a brakującą resztę do fastu w wersji już obróconej i kopiować ją movem.
@Kefir_Union, post #24
Wracając do mojego problemu z początku posta to niestety dalej go nie rozwiązuje. Mam animację, która nie mieści się w chip. Jeśli mam ją odwracać kopiując z chip do chip to już lepiej zamieścić w chip animację z klatkami obciętymi do połowy a brakującą resztę do fastu w wersji już obróconej i kopiować ją movem.
@Hexmage960, post #27