1

witam,

moze to ktos przyspieszyc?

<code>
                lda adr1
                lsr @
                lsr @
                lsr @
                sta adr1
               
                lda adr2
                asl @
                asl @
                and #$e0
                ora adr1
                sta adr1
               
                lda adr2
                and #$07
                sta temp

                lda adr2
                lsr @
                lsr @
                lsr @
                and #$18
                ora #$40

                ora temp
                sta adr2
</code>

pliz :)

http://atari.pl/hsc/ad.php?i=1.

2 Ostatnio edytowany przez eru (2007-07-14 13:08:35)

O ile masz pamięć, użyj tablic:

  ldx adr1
  ldy adr2
  lda tab1,x    ; tab1[i] = i >> 3
  ora tab2,y    ; tab2[i] = (i << 2) & 0xE0
  sta adr1
  lda tab3,y    ; tab3[i] = (i & 7) | (((i >> 3) & 0x18) | 0x40)
  sta adr2

24 cykle zamiast 54.
O ile się na jakichś detalach nie walnąłem.
Powodzenia,
eru

: 404. Stopka not found

3

aż dziw bierze XXL że o takie podstawowe rzeczy się pytasz, musisz zacząć pisać jakieś 1 ramkowe fx-y wtedy nabierzesz wprawy :)

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

4

prawde mowiac liczylem na jakies czary mary, ale kolejny raz widze :-) ze jesli chodzi o szybkosc, pierwsze co nalezy sprawdzic to to czy mozna stablicowac wyniki :)

http://atari.pl/hsc/ad.php?i=1.

5

Ogólnie, 2 typowe metody, które kosztem pamięci zwiększają szybkość:
- tablice
- rozpętlenie kodu
:)

: 404. Stopka not found

6

My w NG rozpętlanie kodu nazywaliśmy STAowaniem ;)

7

Hehe, a to ciekawe :)
Z tego co pamiętam, Slight nazywali to 'autopising', gdzieś po drodze było 'autogenerowanie kodu', ciekawe jakie jeszcze nazwy były...

: 404. Stopka not found

8

ja nazywam to 'unrolada' :)

9

osobiście nie miałem jednolitej nazwy, pojawiały się różne pojęcia "ciąg z kodu", "generowany kod" itp

ztcp Excellenci nazywali to "kilobajt"

10 Ostatnio edytowany przez seban (2007-07-14 21:27:31)

Hej!

eru napisał/a:

Hehe, a to ciekawe :)
Z tego co pamiętam, Slight nazywali to 'autopising', gdzieś po drodze było 'autogenerowanie kodu', ciekawe jakie jeszcze nazwy były...

To nie Slight :) ale Shadows używali takiej nazwy...

My to nazywaliśmy kilkoma nazwami...

- "hektar kodu"
- "kilobajty kodu"

i jeszcze kilka innych których już nie pamiętam :) Ale najczęściej nazywaliśmy to "hektarem kodu" :D


Seban

11

Troche moze off topic ale na obecnych procesorach rozpetlanie kodu moze miec odwrotny skutek od zamierzonego :-)

12

Hej!

Ano... ale 6502 nie ma "cache" i to bardzo dobry sposób na przyspieszenie kodu o ile mamy dużo wolnej pamięci :)

pozdrawiam
Seban

13

Rozpętla się na wszystkich architekturach, tylko kwestia jest zawsze jak bardzo. Zazwyczaj rozpętlenie 4-16 razy jest bezpieczne i pomocne, więcej nie ma sensu a czasem robi gorzej: nie działa branch prediction, instruction-cache idzie w diabły, itp.

: 404. Stopka not found