Komputery z Z80 > JUPITER ACE
Jupiter ACE - programowanie w ASM (TASM/ZASM)
matofesi:
To ja tylko przypomnę dla lubiących pasmo: https://www.speccy.pl/forum/index.php?topic=5592.msg84984#msg84984
Niestety nie umiem tego przekompilować pod Windowsem.
KWF:
I jeszcze garść przydatnych informacji:
--- Mapa pamięci
0000 - 1FFF = ROM
2000 - 23FF = 768 charmap + 256 PAD (CPU priority)
2400 - 27FF = 768 charmap + 256 PAD (Video priority)
2800 - 2BFF = 1KB charset (CPU priority)
2C00 - 2FFF = 1KB charset (Video priority)
3000 - 3BFF = RAM 1KB x 3 mirrors
3C00 - 3FFF = RAM 1KB
3C00 - FFFF = Expansion RAM (0-48KB)
--- Rejestry Z80 i ich wykorzystanie przez FORTHa
A,Flags - Temporary
BC - Temporary
DE - Temporary
HL - Temporary
IX - System Variables ($3C00)
IY - Interpreter Pointer
SP - Return Stack Pointer (IP on top)
$3C3B - Data Stack Pointer
RST n - Used for core stack ops
matofesi:
Jakby komuś było potrzebne, to w załączniku przekompilowane dla Windows pasmo z moim patchem generującym TAPy dla Jupitera. Wywyołuje się np:
--- Kod: ---pasmo --jace zrodlo.asm wynik.tap
--- Koniec kodu ---
W efekcie daje TAPa którego podłączamy do emulatora (albo konwertujemy na tzx etc.) i wczytujemy przez
--- Kod: ---0 0 bload wynik
--- Koniec kodu ---
Jeśli w kodzie znajdowała się dyrektywa END to całość się załaduje i automatycznie uruchomi od tego adresu. Jeśli nie, to tylko załaduje od adresu z ORG.
Ten tryb nie nadaje się oczywiście do wszystkich zastosowań - przede wszystkim nie da się w ten sposób skompilować kodu osadzanego w słowniku FORTH. Potrzebna mi była metoda szybkiego generowania TAPów z demami do testowania i stąd właśnie ta poprawka.
Kod jest skompilowany statycznie przy użyciu MinGW - kompilacja innym kompilatorem da pewnie mniejsze EXE, ale to już wykracza poza moje umiejętności obsługi Windows ;)
matofesi:
Po dyskusjach o fizycznym wczytywaniu programów do Jupitera i procedurze konwersji przysiadłem i poprawiłem pasmo dodając do niego kolejny tryb generowania --jacex
Wywołanie tak jak dotychczas
--- Kod: ---pasmo --jacex zrodlo.asm wynik.tzx
--- Koniec kodu ---
(tak... w poprzednim poście parametry były podane w niepoprawnej kolejności ;)) (poprawione przez moderatora)
Plik wynikowy powinien mieć format "przeskalowany" do Jupitera i wgrywać się poprawnie na fizycznym sprzęcie przy użyciu "wgrywadełek" albo stosownego programu odtwarzającego TZXy.
Wczytanie (i uruchomienie) kodu to - jak dotychczas
--- Kod: ---0 0 bload wynik
--- Koniec kodu ---
W załączniku archiwum z patchem (uwaga - jakość kodu może wypalić wzrok ;)) oraz pasmo.exe skompilowane statycznie dla Windows.
tooloud:
czy ten sam plik daje radę wczytać w emulator?
Nawigacja
[#] Następna strona
Idź do wersji pełnej