atarionline.pl Quick Assembler - problem z uruchomieniem programu - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorTygrys1982
    • CommentTime6 Jan 2022 zmieniony
     
    Cześć, od niedawna bawię się Quick Assemblerem. Przepisałem dziś z Tajemnic Atari prosty programik zamieniający kolory ekranu. Problem w tym, że programik nie uruchamia mi się. Jak widać na filmiku, wpierw program asembluje, następnie próbuję uruchomić go komendą Run, ale bez efektu. Szukałem informacji w podręczniku do QA i w internecie, ale żadnych konkretów, które by mi pomogły, więc może wśród Was są osoby, które wiedzą jak uruchomić program w Quick Assemblerze? Byłbym wdzięczny za pomoc. Wszelkie konstruktywne podpowiedzi mile widziane.

    LDA 709
    TAX
    LDA 710
    STA 709
    TXA
    STA 710
    END
    • 2: CommentAuthormono
    • CommentTime6 Jan 2022 zmieniony
     
    W menu setup jest adres Run w którym ustawiasz adres uruchomienia programu skompilowanego do pamięci (opt %10101).

    Edit: Przed END ma być rts.

    Edit 2: Przed programem ma być
    opt %10101
    org $600


    Setup / Run ustaw na $600.
    • 3:
       
      CommentAuthorKaz
    • CommentTime6 Jan 2022
     
    Kolega Tygrys1982 podesłał filmik z tym, co robi, bo ze względu na objętość (ponad 8 MB) tutaj się nie dołączył. Wrzuciłem na nasz kanał:

    • 4: CommentAuthor0xF
    • CommentTime6 Jan 2022 zmieniony
     
    Tego rodzaju program w asemblerze działa przez jakieś 11 mikrosekund. Program zakończył się i wrócił do QA zanim zdążyłeś mrugnąć okiem. Wciśnij w QA Shift+Control+Spacja, aby przełączyć się na ekran zakończonego programu.

    Edit:
    Po obejrzeniu filmiku:

    1. Na początku programu musisz dodać:
    opt 21
    org $480

    Pierwsza linijka mówi, że program ma się zasemblować do pamięci.
    Druga linijka mówi, pod jakim adresem ma zostać umieszczony.
    Obie linijki powinny być wcięte spacjami, niestety to forum ma problem z tym.

    2. Na końcu programu (przed END) dodaj:
    rts

    co oznacza zakończenie programu.

    Edit 2:
    Wszyscy edytują ten wątek. ;) Mono napisał w zasadzie to samo, co ja. %10101 to 21 w zapisie binarnym. W przypadku tak krótkich programików "org $480" i "org $600" są równie dobre, ważne żeby liczba zgadzała się z "Run" w menu "Setup".
    • 5: CommentAuthorTygrys1982
    • CommentTime6 Jan 2022
     
    Dzięki @Mono i @0xF za podpowiedzi.
    Po naciśnięciu kombinacji klawiszy SHIFT+CONTROL+SPACJA widzę efekt na ekranie, zatem to już jakiś sukces.

    Pytanie mam - w jaki sposób mogę wymusić na napisanym programie oczekiwanie na naciśnięcie np. dowolnego przycisku, tak bym mógł zobaczyć efekt podczas uruchamiania?
    • 6: CommentAuthormono
    • CommentTime6 Jan 2022
     
    Przed kończącym RTS umieść:
    lda #$FF
    sta $2FC
    cmp $2FC
    beq *-3
    • 7: CommentAuthorTygrys1982
    • CommentTime6 Jan 2022
     
    dzięki @Mono za pomoc. Działa!