atarionline.pl Rzeczy które chciałbyś w MADSie ale boisz się poprosić :) - 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: CommentAuthortebe
    • CommentTime3 Jun 2023
     
    poprawione ->link<-

    dta 'text'^*,"text"*^
    • 2: CommentAuthormono
    • CommentTime4 Jun 2023
     
    Dzięki, działa pięknie.
    • 3: CommentAuthorVagant
    • CommentTime7 Jun 2023 zmieniony
     
    Witam i mam pytanie. Dopiero zaczynam zabawę z MADS i przesiadam się z kickassemblera z c64. Występują tam wygodne dyrektywy .fill a zwłaszcza .lohifill opisane tutaj ->link<-
    Czy jest jakiś odpowiednik w MADS?
    • 4: CommentAuthormono
    • CommentTime8 Jun 2023 zmieniony
     
    W mads masz:
    - iterator :n ->link<-
    - dyrektywę .rept ->link<-
    Do .lohifill musisz używać osobnych konstrukcji typu:
    lo:
    :$100 .byte <[40*#]
    hi:
    :$100 .byte >[40*#]

    albo też .reptów.
    Nie wiem czy jest w dokumentacji, ale dzięki temu że do .repta przekazuje się też parametry, to można .repty zagnieżdżać np.
    .rept 2
    .rept 3,#
    .byte #,:1
    .endr
    .endr
    • 5:
       
      CommentAuthorpirx
    • CommentTime8 Jun 2023 zmieniony
     
    hej,

    .fill może być zastąpiona skrótem

    :N

    nie potrzeba oddzielnych wersji dla word itp.

    np.

    :4 .byte 0

    (cztery zera)

    :4 .word 0

    (osiem zer)

    .fillword 5,i*$80

    to będzie

    :5 .word #*$80


    ->link<-

    Jeśli chodzi o .lohifill, to ni ma, a w sumie to by się przydało. Można emulnąć makrem. Może nawet zrobię, by nam się kod o 1000 linii skrócił :]

    >>> hehe za wolno klikalem, mono jak zawsze wygrywa :)
    • 6: CommentAuthormono
    • CommentTime8 Jun 2023
     
    Wszystko to wina smarkzabawek - ja piszę na prawdziwym komputrze :)

    sin i cos też jest w madsie, ale ja nie umiem używać i generuję sobie sam tablice pythongiem ale zawsze mam projekt z makefilem.
    • 7: CommentAuthortebe
    • CommentTime8 Jun 2023
     
    bez przesady z tym skracaniem kodu, bo przestaje być to czytelne

    już .lohifill może być mylące, czy chodzi o lo(x), hi(x), lo(x)...
    czy lo(x), lo(x)..... hi(x), hi(x)....

    w xasm skracanie rejestrów przez ^ też wg mnie jest za daleko posuniętym skracaniem kodu

    jeśli czytanie kodu wymaga zatrzymania się i zastanawiania tzn. że jest nieczytelny
    • 8: CommentAuthorVagant
    • CommentTime8 Jun 2023
     
    Dzięki!
    • 9:
       
      CommentAuthormiker
    • CommentTime8 Jun 2023
     
    Taka prośba od Świętego, może da radę:
    "Szukam czegoś - może mads ma takie coś (...) które jest w stanie zrobić listę zmiennych używanych przez daną procedurę od np etykiety, sprawdzając wszystkie podskoki typu jsr, rozgałęzienia itp".
    • 10: CommentAuthormono
    • CommentTime8 Jun 2023
     
    @tebe: Podpisuję się pod tym obydwoma ręcami.
    • 11: CommentAuthortebe
    • CommentTime8 Jun 2023
     
    jeśli mają jakąś systematyczną nazwę, np. skp0, skp1, skp2 ...

    to .ifdef je wyłuska

    .rept 100,#
    .ifdef skp:1
    .print skp:1
    .endif
    .endr
    • 12:
       
      CommentAuthormiker
    • CommentTime8 Jun 2023
     
    A co jeżeli nie mają?
    • 13:
       
      CommentAuthorpirx
    • CommentTime8 Jun 2023
     
    @tebe
    bez przesady z tym skracaniem kodu, bo przestaje być to czytelne


    Zgoda, w dodatku ni ma etykiety lo i hi i potem trzeba się odwoływać do jakiegoś "etykieta+(etykieta_end-etykieta)/2"
    i się trzeba zastanowić, czy dać +1, czy nie ;)
    • 14: CommentAuthortebe
    • CommentTime8 Jun 2023
     
    miker: można przełącznikiem -t podejrzeć wszystkie etykiety

    -t[:filename] Generate ".lab" labels file
    • 15:
       
      CommentAuthorpirx
    • CommentTime15 Feb 2024
     
    Hej tebe. Akurat przetarłem oponkę w kurwecie 150 mil od domu, lewarek padł i czekam na pomoc drogową, więc mam chwilę, żeby zapytać o ficzur, który by mi się przydał.
    Czy byłoby możliwe zrobienie wypustu z madsa, który byłby czystym asemblerem? Już tłumaczę, o co mi chodzi. Mam skomplikowany projekt w madsie. Taki kod jest trudny do maszynowej analizy.
    Szukam buga bisekcją komitów, podejrzewam problem z asemblacją. Oglądanie źródła nic nie daje. Więc zaczynam analizować binarki starą i nową. Coś widzę, ale przełożenie tego na źródło niezbyt łatwe. Więc odpalam disassembler i anizuję własny disasemblat jakimś vimdiffem. Sukces.
    Byłoby wiele godzin szybciej, jakbym mógł wypuścić z madsa jeden plik, coś jak .lst, ale bez pominięć i skrótów. Oczywiście to by się dało zrobić w miarę łatwo, jakbyś miał taką formę pośrednią gdzieś po drodze.
    Inny pryklad - chcialbym automagicznie przetlomaczyc źródło na inny procek czy coś. Czysty kod, coś jak atari assembler/edytor to w miarę proste zadanie. Żywy mads znacznie trudniejszy, bo by trzeba było wszystkie konstrukcje języka przetwarzać.

    W skrócie - wpust z madsa wyglądający jak z dissassemblera, tylko z dobrymi labelkami, itp. Czy możliwy?

    Pomóc drogowa właśnie odwołała pryjazd, niestety gafam tylko z robotami. Szykuje się długa noc...
    • 16:
       
      CommentAuthorjhusak
    • CommentTime15 Feb 2024 zmieniony
     
    @Pirx, trzymamy kciuki! A z robotami jest taki myk, że powtarzasz w kółko "proszę z konsultantem". I robot Cię w końcu przełączy.

    A taki ficzer z raw asemblerem byłby gites.

    Chociaż nie jest to łatwe, duużo poprawek potrzeba i sporo testów.
    • 17: CommentAuthorCuzz
    • CommentTime16 Mar 2024 zmieniony
     
    ja się boje madsa włączać , brakuje mi książek na komendy, chyba kaz ma na stronie jakąś książke, czasami czułem się jakbym walił się w ściane. Dopiero jak zainstalowałem bios incorporated w moich laptopach, wszystko zaczęło chodzić, przesiadłem sie na linuksa, zrobiłem sieć z komputerów i mi wszystko działa. Nie wiem czy mads teraz działa, jak napisałem pierwszą grę to troche się boje tego madsa, on ma chyba jakiś translator.
    • 18:
       
      CommentAuthorMaW
    • CommentTime17 Mar 2024
     
    Cuzz, a tu: ->link<- byłeś?
    • 19:
       
      CommentAuthorPecus
    • CommentTime18 Mar 2024 zmieniony
     
    @Pirx @jhusak
    A czy nie uważacie że wystarczyłby (no powiedzmy, że lekko obrobiony, żeby lepiej wyglądał) plik taki jak obecnie generowany .lst ale z nazwami etykiet podmienionymi na te z pliku .lab ?

    O.K. Nie pomyślałem o rozwinięciu pseudorozkazów :) bo już makra są ładnie w pliku .lst porozwijane.
    • 20:
       
      CommentAuthorpirx
    • CommentTime18 Mar 2024
     
    tak, dykłydnie tAKIEgo pełnego .lst bym chciał, nawet nie musi być specjalnie ładny, tylko żeby tam wszystko było rozwiniętę do poszczególnych rozkazów 65o2
    • 21:
       
      CommentAuthorPecus
    • CommentTime18 Mar 2024
     
    No to to nie powinno być szczególnie trudne/kłopotliwe do dodania - tak myślę, ale nie znam się :)

    Rozwinięcia pseudorozkazów i rozszerzone etykiety (takie jak w pliku .lab).
    • 22:
       
      CommentAuthorjhusak
    • CommentTime18 Mar 2024
     
    Niestety, dodać to w kodzie to mocne rzeźbienie, ale myślę, że tebe da radę, jak go będziemy prosić.

    Więc tebe prosimy!
    • 23: CommentAuthortebe
    • CommentTime19 Mar 2024
     
    Mono poprawiał już Mads-a kilkakrotnie