@Hexmage960, post #30
lea Bitplane, a0 moveq #40, d2 ; Screen width in bytes moveq #10-1, d3 ; Screen width in 32-bit longwords .xloop moveq #0, d1 ; Set fill carry to 0 move.w #256-1, d0 ; 256 rows .yloop eor.l (a0), d1 ; Fill move.l d1, (a0) add.w d2, a0 ; Step to next row dbf d0, .yloop lea -40*256+4(a0), a0 ; Step to top of next column dbf d3, .xloop
@Hexmage960, post #28
Nie, nie o to mi chodziło. Po prostu CPU PC musi się więcej napocić by postawić te 32 piksele chunky (32 operacje), niż Amiga postawić 32 piksele w planar (1-8 operacji).
@docent, post #32
@docent, post #32
Nawet przy zapisie kolejnych pixeli na pc to przy 32bitowych wartosciach na raz to tylko 8 operacji - na amidze to 8 operacji.
Na amidze ustawienie losowych 32 pixeli w 256 kolorach wymaga ustawienia/skasowania wlasciwego bitu na 8 bitplanach dla kazdego z 32 pixeli czyli 256 operacji, na pc to tylko 32 operacje zapisu. Czyli amiga 256 operacji, pc 32 operacje - faktycznie pc sie wiecej napoci :))
@Hexmage960, post #37
@Hexmage960, post #37
Oczywiście danych w 8 bitplanach i 8-bitowym chunky jest tyle samo, więc samo kopiowanie 32-bitowych wartości zajmie tyle samo operacji.
Spójrz na to jednak również tej strony, że Amiga potrafi zapisać/zmodyfikować do 256 pikseli w 8 operacjach.
Narzut związany jest tylko ze scalaniem. Scalanie wykonywane jest jednak log2(k), gdzie k to liczba bitplanów. O scalaniu zapomniałem w poprzednim poście.
...plus cala reszta tego bezsensownego wpisu...
@docent, post #39
@Hexmage960, post #44
Zalety Amigi:
1. PC potrzebuje mocniejszego procesora niż Amiga, by modyfikować grupę sąsiadujących pikseli,
amiga pc moveq #$c0,d0 mov eax, #$2323 or.b d0, (plane0address) mov eax, [address] or.b d0, (plane1address) or.b d0, (plane5address)
2. Szybsza możliwość wpływania na wybrane bity w pikselach.
3. Możliwość optymalizacji szybkości operacji oraz rozmiaru danych graficznych (wybrane bitplany).
W Amidze CD32 pojawił się akcelerator graficzny, który umożliwia szybkie wklejanie chunky.