Komputery z Z80 > JUPITER ACE

Jupiter ACE - programowanie w ASM (TASM/ZASM)

<< < (2/3) > >>

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

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej