atarionline.pl Zagnieżdżone .REPT w MADS - 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: CommentAuthorilmenit
    • CommentTime11 Feb 2020
     
    Hej,

    W jaki sposób przekazać do wewnętrznego .REPT licznik z zewnętrznego .REPT w MADS?
    CA65 ->link<- umożliwia podanie identyfikatora np.
    .repeat 16, y
    .repeat 16, x
    .byte y * 16 + x
    .endrep
    .endrep

    ale dla .REPT identyfikatorem jest #. Jak powyższy przykład powinien wyglądać w MADS?
    • 2:
       
      CommentAuthorshanti77
    • CommentTime11 Feb 2020 zmieniony
     
    Też są identyfikatory :1,:2
    Obejrzyj instrukcję od Mads'a.
    • 3: CommentAuthorilmenit
    • CommentTime11 Feb 2020
     
    no właśnie instrukcja od MADS jest dosyć uboga w tej kwestii:
    ->link<-
    • 4: CommentAuthortebe
    • CommentTime11 Feb 2020
     
    .rept 16
    ?y=#
    .rept 16
    ?x=#
    .byte ?y * 16 + ?x
    .endr
    .endr
    • 5: CommentAuthorilmenit
    • CommentTime11 Feb 2020 zmieniony
     
    @tebe - dzięki, przetestuję! Czy w dokumentacji MADSa jest gdzieś opisana taka składnia?
    EDIT: znalazłem w dokumentacji info, dlaczego taka składnia działa:
    "natomiast znak zapytania '?' na początku etykiety oznacza etykietę tymczasową, taką której wartość może się zmieniać wielokrotnie w trakcie asemblacji."
    • 6:
       
      CommentAuthorshanti77
    • CommentTime11 Feb 2020 zmieniony
     
    To przy okazji , czy mogę skrócić ten przykładowy kod za pomocą .rept ?

    .macro TEST x0,x1,x2
    ?a = :x0 & 240
    dta b(?a)

    ?a = :x1 & 240
    dta b(?a)

    ?a = :x2 & 240
    dta b(?a)
    .endm