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 16:01 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 16:01 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 16:01
       
      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 16:01 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 16:01
       
      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 16:01
       
      Przed kończącym RTS umieść:
      lda #$FF
      sta $2FC
      cmp $2FC
      beq *-3
      • 7: CommentAuthorTygrys1982
      • CommentTime6 Jan 2022 18:01
       
      dzięki @Mono za pomoc. Działa!