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 10:02
       
      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 10:02 zmieniony
       
      Też są identyfikatory :1,:2
      Obejrzyj instrukcję od Mads'a.
      • 3: CommentAuthorilmenit
      • CommentTime11 Feb 2020 11:02
       
      no właśnie instrukcja od MADS jest dosyć uboga w tej kwestii:
      ->link<-
      • 4: CommentAuthortebe
      • CommentTime11 Feb 2020 12:02
       
      .rept 16
      ?y=#
      .rept 16
      ?x=#
      .byte ?y * 16 + ?x
      .endr
      .endr
      • 5: CommentAuthorilmenit
      • CommentTime11 Feb 2020 13:02 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 13:02 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