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
     
    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
     
    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 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
     
    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 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
     
    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
     
    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
     
    Tak, bardzo dobry podręcznik, dobrze zeskanowany, używam.
    • 9: CommentAuthorlzd
    • CommentTime24 Nov 2023
     
    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 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 :)))))