Projekt LOOP · prototyp

a800mon

Monitor i debugger dla emulatorów komputerów 8-bitowych — narzędzie deweloperskie, które przy okazji uczy architektury mikroprocesorów na przykładzie popularnych maszyn, takich jak Atari.

Podgląd projektu a800mon
Źródło: a800mon / YouTube

a800mon to frontend monitora i debuggera dla emulatorów komputerów 8-bitowych. Zamiast tworzyć kolejny emulator, projekt definiuje własny binarny protokół komunikacji i buduje nad nim wygodne UI oraz CLI.

Pierwszym obsługiwanym backendem jest fork Atari800 z funkcją Remote Monitor, ale architektura zakłada, że ten sam frontend może współpracować z innymi emulatorami, a docelowo także z urządzeniami sprzętowymi implementującymi ten sam protokół.

Projekt służy do eksperymentów z pamięcią, debugowania programów na 6502 i budowania nowoczesnych narzędzi deweloperskich dla środowiska retrokomputerów.

Ma też wyraźny cel dydaktyczny: pokazuje, jak naprawdę działa komputer 8-bitowy, na przykładzie popularnych maszyn takich jak Atari. Podgląd listy wyświetlania, zawartości pamięci, rejestrów procesora 6502 i pracy dezasemblera w czasie rzeczywistym zamienia wiedzę o architekturze mikroprocesorów z abstrakcji w coś, co można na żywo zobaczyć i przetestować — a800mon jest przy okazji świetnym narzędziem dydaktycznym.

Dobrze pokazują to krótkie demonstracje przeszukiwania pamięci w klasycznych grach: w River Raid i Montezuma’s Revenge dołączony trener (go800mon trainer) zawęża tysiące potencjalnych adresów do jednego bajtu przechowującego liczbę żyć, a następnie pułapka na zapis do tego adresu prowadzi wprost do konkretnej instrukcji procesora, która tę wartość zmniejsza. To ten sam proces, jakiego uczy się na kursach architektury komputerów — tu w pełni namacalnej, praktycznej formie.

Narzędzie jest już dyskutowane w społeczności retrokomputerowej, m.in. na forum atari.org.pl, gdzie porównywano je do rozwiązań takich jak RetroDebugger czy debugger Altirry.

Filmy

Cheating River Raid in 120 seconds

Cheating Montezuma in 60 seconds

Zrzuty ekranu