1

Ratunku, walczę już z godzinę z 5 linijkami które wyświetlają zwykły obrazek PI1. Coś gdzieś naknociłem i nie mogę znaleźć.

    movem.l    picture+2,d0-d7
    movem.l    d0-d7,$ff8240

    move.w    #2,-(a7)
    trap    #14
    addq.l    #2,a7

    move.l    d0,a0
    move.l    #picture+34,a1

    move.l    #7999,d0
loop
    move.l    (a1)+,(a0)+
    dbf    d0,loop

A w załączniku wynik mojego algorytmu wyświetlania ;)

Post's attachments

pi1.JPG 56.39 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.

Nie jestem za dobry w analizowaniu asemblera, ale po obrazku wygląda na to że obraz jest przesunięty o słowo w którąś stronę.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

3

Dokładnie, ale ja nigdzie nie widzę przesunięcia. W A0 jest adres "obrazu", w A1 jest początek danych obrazka i zwykła pętla:


    move.l    #7999,d0
loop
    move.l    (a1)+,(a0)+
    dbf    d0,loop

Tego przecież nie da się uwalić, a jednak dałem radę :D

4 Ostatnio edytowany przez Cyprian (2011-05-13 13:11:06)

jury, może też być ustawiony zły tryb graficzny. MED zamiast LOW lub odwrotnie.
najlepiej podeślij PRG to oblookamy

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

5

O matko, masz rację z tym trybem graficznym. Dzięki, i idę zapaść się pod ziemię :D

6

OK, mam kolejne mądre pytanie :)
Kończąc wykonanie robi się

        clr.l    -(a7)
    trap    #1

Natomiast w jednym tutorialu spotkałem się że program jest kończony:

        move.l    #$4C0000,-(a7)
    trap    #1

Czy ktoś wie co to za adres $4C0000 bo nie mogę znaleźć?

$4C0000 to nie adres tylko numer funkcji GEMDOSu (właściwie to $4C). Jest kilka funkcji konczacych proces w GEMDOSie, najprostsza to oczywiście 0, ale jest jeszcze kilka innych z różnymi dodatkowymi ficzerami, a $4C to jedna z nich.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio