Nowy "MADS" by Kaz 2012-05-14 09:37:31

Ukazała się nowa wersja programu pecetowskiego "MADS", o czym informuje autor, Tomasz "Tebe" Biela. Dla przypomnienia, "MADS" jest crossassemblerem dedykowanym procesorom 6502 i 65816, potrafi generować pliki binarne dla 8-bitowych Atari. Zmiany w wersji 1.9.4:

nosty 2012-05-14 11:51:45

Właśnie przeglądałem kod gry Snakes z Grzybsoniady w MADS'ie i jestem pod wrazeniem. Te wszystkie makra, procedury, IF... ELSE i masa pseudorozkazów sprawia ze ciezko sie to czyta komus uzywającemu prostego XASM'a :) Będe musial w koncu sie zagłębic w dokumentacje mads'a i wyprobowac. Do tej pory czysty asembler Atari wydawal mi sie dostatecznie skomplikowany ;)

at0mic 2012-05-14 13:18:51

super!

JKR 2012-05-14 15:19:39

@nosty: Nie traktuj, prosze, tego kodu (Snakes Of Atari Island) jako bezwzgledny wzór do naśladowania. To mój pierwszy program w MADS i mam wrażenie że w paru miejscach można było użyć bardziej optymalnych konstrukcji.

MADS ma rozbudowaną składnię i ciężko wszystko naraz ogarnąć zwłaszcza że dokumentacja niestety nie jest najmocniejszą stroną. Ale warto sie zagłębić bo, moim zdaniem, jest to już w miarę dojrzały projekt.

JKR 2012-05-14 15:40:36

Gratulacje i podziekowania dla autora za kontunuowanie rozwoju MADS. Nazwy parametrów makr - super! Aż chce się znowu coś napisać.

jhusak 2012-05-14 18:32:28

jak się zacznie myśleć madsowo, to kod się 3 x szybciej pisze.

tebe 2012-05-14 22:02:41

jestem mile zaskoczony że ktoś użył w takiej ilości mads-owych rozkazów :) w założeniu mają one pomagać skrócić czas pisania i zbliżyć assembler do języka wyższego poziomu

niektóre makra jak INCW z gry Snakes są nadmiarowe, makro rozkaz INW jest wbudowany w mads-a, tak samo jak makro rozkaz DEW

mgr_inz_rafal 2012-05-15 08:30:57

Rzeczywiście, aż kusi, aby sobie skorzystać z tych wszystkich "bajerów" znacznie ułatwiających życie. Kawał świetnej roboty! Na razie jeszcze jadę na "prawie" czystym kodzie maszynowym, żeby dobrze potem rozumieć, co te makra robią :)

jhusak 2012-05-15 21:17:21

Z wyższego poziomu brakuje mi w analizie kontekstowej pamiętania typu zmiennej. Jest sobie zmienna typu byte lub word, ja chcę zrobić "if" i muszę podać typ tutaj jeszcze raz. A nie jest to potrzebne, bo typ się podało przy deklaracji.

jhusak 2012-05-15 21:22:46

A - propos tego myślenia madsowego - jako wprawkę napisałem flasher pamięci 28c256 do mojego xegs, w którym ta kostka się wywaliła. Zrobiłem piękny kartridż 8kb z podstawką (na podstawie kursu zenona po prawej) z czterema bankami, po czym siadłem i w pół godzinki z testami machnąłem programik flashujący.
Flashował po 8 kb i czekał na wciśnięcie przycisku po przełączeniu switcha na następny bank. Oczywiście z weryfikacją.

Niby nic takiego, ale czas też niewielki. W czystym asmie pisałbym to troszkę dłużej, bo więcej tekstu trzeba by było wklepać :)

A kartridż - tylko jedna przelotka sygnałowa! i cztery połączenia mas.

tdc 2012-05-17 03:33:48

Tak czas pisania ma znaczenie.
Jednym z rekordzistów pod tym względem jest pascal, gdzie kiedyś wyliczyłem że w moim ~70 kb programie ~20 kb to są same beginy i endy :P

Pod tym względem lepiej się sprawdza C/C++, a nawet Action!, który np. ma tę przewagę nad innymi językami że nie wymaga średników i dwukropków.

nosty 2012-05-17 10:26:14

Pierwszy raz slysze zeby programista przeliczal czas tworzenia programu w zaleznosci od skladni języka (w sensie ile sie trzeba naklepac w klawiaturę) :P
Zawsze mi sie wydawalo ze 80% to myslenie a 20% naciskanie klawiszy.

A w moim kodzie chyba najwiecej zajmują... komentarze :) Inaczej przy mojej sklerozie, po miesiacu nic bym nie rozumial z wlasnych programow :P

0xF 2012-05-17 15:32:12

W kwestii rozwlekłości kodu źródłowego nie jest problemem jego pisanie, tylko czytanie.

tdc 2012-05-18 02:41:27

Wiesz Fox, czy się pisze czy się czyta to zawsze czas to pieniądz ;)

at0mic 2012-05-25 08:26:43

jak w MADS zaimportować atarowski plik muzyczny z PC i w jakich formatach jest to najprostsze ?

tebe 2012-05-25 21:17:42

zajrzyj do dołączonych przykładów, ...examplesmsx