Większość materiałów na temat programowania w asemblerze odnosi się do archaicznego TASM (Telemark Assembler) i pod niego są szablony (templates) do generowania plików TAP dla Jupitera ACE. Co prawda TASM w do wersji 3.1 działa całkiem sprawnie pod DOSboxem, jednak jego używanie jest archeologią stosowaną. Ostatnia wersja TAMSa o numerze 3.2 działa z lini komend Windowsa, ale nie działa pod DOSboxem, więc poza kręgiem moich zainteresowań.
Osobiście do gustu bardziej przypadł mi ZASM, który jest ciągle rozwijany (najnowsza wersja pochodzi z września tego roku). Dlaczego ZASM? Ponieważ z automatu potrafi dodać sumę kontrolną do generowanych bloków TAP (na odpowiednim miejscu), a także dokleić odpowiedni nagłówek oraz dodać długość następnego bloku w pliku TAP. Aha, no i jest dla nieokienkowych.
Dokumentacja ZASM opisuje w jaki sposób generować pliki TAP (
https://k1.spdns.de/Develop/Projects/zasm/Documentation/z92.htm) dla ZX Spectrum i Jupitera ACE. Opisuje ona różnicę między tymi formatami, ALE opis jest do wersji starszej niż 4.2 i nie działa poprawnie w nowszych wersjach kompilatora. Generowane tą metodą TAPy mają za długi nagłówek (o dwa bajty). Dla własnych celów stworzyłem sobie dwa szablony pod ZASMa 4.2.x, aby łatwo i wygodnie generować poprawne pliki TAP, które można wczytać do emulatora (w moim przypadku ZXSP).
DICT_template - szablon dla TAPa z definicjami nowych słów w FORTH; wczytywanie przez:
LOAD nazwa
BIN_template - szablon TAPa z kodem binarnym wczytywanym pod zadany adres w pamięci RAM; wczytywanie przez:
0 0 BLOAD nazwa
W ZIPie są dwa przykładowe pliki DICT.TAP i BIN.TAP wygenerowane z tych szablonów. Są to wersje rozwojowe i można je sobie dowolnie modyfikować, np. przez dodanie autostartu, czy łączenie wielu bloków w jeden plik.Szablony przeniosłem na GitHuba, aby łatwiej nimi zarządzać.
https://github.com/McKlaud76/JACE-TAP-templates