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:
dodana normalizacja ścieżek dla plików, tak aby działały pod
Unixami, znaki '\' zamieniane są na '/'
poprawione przekazywanie dyrektyw jako parametrów do procedur i
makr, dyrektywy nie były rozpoznawane przy włączonym przełączniku
-c (case sensitive)
poprawione działanie .USE [.USING]
dodana informacja w postaci ostrzeżenia (WARNING) o etykiecie
powodującej nieskończoną ilość przebiegów asemblacji (INFINITE
LOOP)
dodany zapis dwóch bajtów nagłówka FF FF dla pliku
zawierającego blok o adresie ładowania $FFFF
komentarze po mnemonikach nie wymagających argumentu zostaną
potraktowane jako błąd, wyjątkiem jest łączenie rozkazów w stylu
xasm poprzez znak ':', np.:
pla $00 -> ERROR: Extra characters on line
pha:pla $00 -> OK
rozszerzona składnia makr o możliwość używania parametrów w
postaci nazw a nie tylko wartości numerycznych-decymalnych,
np.:
.macro SetColor val,reg
lda :val
sta :reg
.endm
.macro SetColor2 (arg1, arg2)
lda #:arg1
sta arg2
.endm
naprawione definiowanie etykiet dla n/w sytuacji, pierwsza
etykieta nie zostanie zignorowana
temp label = 100
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