Komputery z Z80 > JUPITER ACE

Jupiter ACE - programowanie w ASM (TASM/ZASM)

(1/3) > >>

KWF:
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:

--- Kod: ---LOAD nazwa
--- Koniec kodu ---

BIN_template - szablon TAPa z kodem binarnym wczytywanym pod zadany adres w pamięci RAM; wczytywanie przez:

--- Kod: ---0 0 BLOAD nazwa
--- Koniec kodu ---

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

Tygrys:
Dzięki wielkie, przyda się!

tooloud:
fajnie fajnie! jeszcze tylko to wczytać na Jupitera :)

KWF:
Eee, to już jesteśmy w domu ;) tap2tzx przeskaluje TAPa do TZXa z timingami ZX Spectrum i można wczytywać przez TZXduino :)

KWF:
Do kompletu dołożyłem autostart:

AUTOSTART_template - szablon TAPa z autostartem; wczytywanie przez:

--- Kod: ---0 0 BLOAD autostart
--- Koniec kodu ---

Oraz przykładowe TAPy wygenerowane z tych szablonów.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej