ZX Spectrum > PROGRAMOWANIE

Asembler ZX Spectrum - Pytania na początek (Cartridge).

<< < (2/7) > >>

matofesi:
Kod działa w RAMie co oznacza, że musisz go skompilować dodając loader. Najprościej na końcu kodu dodać linię "end 32768" a potem kompilować przez

pasmo --tapbas nazwa.asm nazwa.tap

I na koniec nazwa.tap załadować normalnie do emulatora albo na fizyczny sprzęt.

siudym:
Dzięki, działa super. Jedynie nie odpala się na RetroVirtualMachine - niby robie wszystko poprawnie, robie load taśmy, wciskam PLAY, odpalają się jakieś dźwięki (pewnie aby oddać realizm ładowania) ale nie pojawia się nic na ekranie.

A gdyby ten kod chciałbym odpalić jako .ROM cartridge ? Zmiana na ORG 0 nic nie daje, próbowałem stworzyć plik .ROM 16KB ale próba załadowania nic nie powoduje. Rozumiem, że wtedy mamy wyłączony BIOS ROM i kod od tak sobie nie zadziała?

KWF:
TAP wygenerowany w sposób w jaki podał @mat działa. GIF w załączniku.

siudym:
Pod Spectaculator działa, ale mi pod RetroVirtualMachine już nie - no chyba, że tam nie ładuje się z automatu? :)

matofesi:
Zmiana ORG na zero spowoduje zmianę adresów, ale nie spowoduje poprawnego działania - musiałbyś na początku dodać kod ustawiający stos, przerwania itp. Pod $38 ei/ret żeby przerwania działały itp. A na koniec skompilować jako --bin i podać do emulatora jako cart IF2.

Co do RetroVirtualMachine - ten emulator jest ładny, ale do praktycznego zastosowania (zwłaszcza "programistycznego") jest mocno taki sobie. Zostań raczej przy Spectaculatorze - tam zdaje się jest normalny debugger itp.

edit:Żeby twój kod działał w ROMie należałoby mu zrobić coś takiego na początku:

--- Kod: ---org 0
di
ld sp,$7fff
im 1
ld hl,16384
ld de,16385
ld bc,6144
ld (hl),l
ldir
ld (hl),56
ld bc,768
ldir
ld a,7
out(254),a
ei
jp main
ds 56-$
ei
ret

--- Koniec kodu ---

Do tego deklaracje zmiennych trzeba zmienić z DB na EQU do RAMu, np tak:

--- Kod: ---x_coordinate:   equ $5b00
y_coordinate:   equ $5b01

--- Koniec kodu ---

I jeszcze żeby emulator nie krzyczał, że cart jest za krótki bo chce 16 kilo w ostatniej linii dodać

--- Kod: ---ds 16384-$

--- Koniec kodu ---

Tak zmodyfikowany kod się kompiluje i wykonuje poprawnie po podpięciu jako cart IF2.

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej