NGA 0.9.3. Nowatorski asembler 6502
Pisanie programów na 8-bitowe komputery z procesorem 6502 wydaje się proste do momentu, gdy projekt zbliża się do fizycznych granic maszyny. Ręczne rozmieszczanie danych, brak miejsca na stronie zerowej czy żonglowanie bankami pamięci stają się wówczas źródłem trudnych do wykrycia błędów, które najczęściej ujawniają się dopiero po uruchomieniu na sprzęcie.
Odpowiedzią na te wyzwania ma być NGA, czyli statyczny weryfikator pamięci, który jednocześnie pełni rolę asemblera dla procesora 6502. Narzędzie analizuje projekt jako graf wykonania, dzięki czemu:
- Automatycznie ustala, który kod i dane muszą znajdować się w pamięci jednocześnie, a które mogą współdzielić te same adresy.
- Za pomocą wbudowanego solvera przypisuje adresy, banki oraz nakładki w jednym procesie.
- Wykrywa błędy na etapie kompilacji, ostrzegając przed brakiem miejsca, odwołaniami do niewidocznych danych czy skokami do nieaktywnych banków.
Szczegółowy samouczek oraz dokumentację prezentującą model pamięci i przykładowe programy można znaleźć na stronie z opisem narzędzia.
Kod źródłowy asemblera wraz z projektami testowymi został udostępniony w serwisie GitHub.