atarionline.pl MAC/65 nauka - 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:
         
        CommentAuthorGeorge
      • CommentTime18 Nov 2023 19:11
       
      Nie mogę tego nigdzie znaleźć,
      czy label w MAC/65 jest jednobajtowy czy dwubajtowy czy to zależy?
      Czyli ja bym chciał wiedzieć czy takie coś:
      100 A=1

      będzie miało jeden bajt?
      Muszę wiedzieć, bo chcę wrzucić na stos.
      • 2:
         
        CommentAuthorPecus
      • CommentTime18 Nov 2023 20:11
       
      Puki nie użyjesz jej w kodzie, to jest to tylko etykieta, która ma wewnętrznie pewnie jakąś reprezentację, ale nie ma to znaczenia.

      Jeśli gdzieś użyjesz
      LDA #A to będzie jednobajtowa
      a jeśli
      LDA #<A
      LDY #>A
      to dwubajtowa :)

      Oczywiście jeśli będzie miała wartość większą niż 255 to LDA #A wyrzuci błąd, bo ....
      • 3:
         
        CommentAuthorGeorge
      • CommentTime18 Nov 2023 20:11 zmieniony
       
      Dzięki Pecus.
      Oczywiście nie mogę do Akumulatora więcej niż bajt :)
      Ej, chyba A nie mogę użyć bo oznacza akumulator, ale w moim kodzie to nie jest A, na szczęście.
      Powiedzmy, że T.
      Więc robię w kodzie:
      100 T=1
      110 LDA #<T
      120 PHA
      130 LDA #>T
      140 PHA

      i się kompiluje.
      Rozumiem, że starszy bajt T będzie równy zero? (a nie jakaś losowa wartość)
      • 4:
         
        CommentAuthorPecus
      • CommentTime18 Nov 2023 21:11
       
      No już nie pisałem o tym, że A w MAC65 jest zarezerwowane (rozkazy typu ROL A) :)

      Tak, tak będzie jak napisałeś. I staraj się dłuższe nazwy stosować. Niech coś mówią... Dzięki tokenizacji lebele w MAC65 zajmują tyle samo miejsca niezależnie od długości ich nazw.

      A w asemblerze, gdzie labelek masz dziesiątki, potem setki i tak bez końca, dobra nazwa ma znaczenie.
      • 5:
         
        CommentAuthorjhusak
      • CommentTime19 Nov 2023 22:11 zmieniony
       
      Kurczę, żeby to tak w Action! działało... Ale nie.... 256 bajtów na tablicę zmiennych ma wystarczyć! Na szczęście (i ddzięki geniuszowi programisty) można tę tablicę było wydłużyć.

      w MAC65 nazwa pamiętana jest raz, ale jak tych nazw będzie 100 po 10 znaków, to kilobajt idzie w świat, co może mieć znaczenie przy dłuższych programach.
      • 6:
         
        CommentAuthorpirx
      • CommentTime22 Nov 2023 15:11
       
      niby ma, ale nie ma, bo w MAC65 łatwo inkludować pliki. nie do końca pamiętam, jak to działa, ale nawet duże programy się komplikują bez problem.
      .OPT NO LIST
      .INCLUDE #SHORTsys.s65
      .INCLUDE #LABELS.s65
      *= $4400
      .INCLUDE #MAKESP.s65
      .INCLUDE #WDAT.s65
      WZORY0
      .INCLUDE #WZORY.s65
      WZORY0END
      WZORY1.3 *= *+[WZORY0END-WZORY0]*3
      .INCLUDE #STARES.s65
      RUN
      .INCLUDE #W3.s65
      .INCLUDE #AH.s65
      .INCLUDE #AS.s65
      A0 .OPT LIST
      *= $02E0
      .WORD RUN
      • 7: CommentAuthorlzd
      • CommentTime22 Nov 2023 22:11
       
      Etykiety ze wszystkich dołączonych plików trzymane są w pamięci, więc mimo wszystko należy uważać przy dużych projektach. Na szczęście MAC/65 przy włączonej asemblacji do pliku zapisuje wynik pracy bez przetrzymywania go w pamięci, a przynajmniej nie cały.

      Poza tym można definiować etykiety lokalne, które nie przesiadują w tablicy symboli.

      Na AtariWiki jest podręcznik do MAC/65.
      • 8:
         
        CommentAuthorGeorge
      • CommentTime23 Nov 2023 10:11
       
      Tak, bardzo dobry podręcznik, dobrze zeskanowany, używam.
      • 9: CommentAuthorlzd
      • CommentTime24 Nov 2023 11:11
       
      Jak teraz patrzę na MAC/65, to muszę przyznać, że to bardzo dobry asembler. Wadami są systemowy edytor i numerowanie wierszy, ale da się to obejść. Najwyżej wczytywanie źródła będzie nieco dłuższe. :-)
      • 10:
         
        CommentAuthorpirx
      • CommentTime24 Nov 2023 14:11 zmieniony
       
      albo możesz wskoczyć w OMC65, kompatydebilny kroskompiler. ->link<-
      się bym nie ździwił, jakby się go dało przekompilować na cc65 :O i miec natywny kroskompiler :)))))