Witam,
po oglądaniu dem i graniu w gry na Atari postanowiłem że trzeba coś własnego stworzyć. Zrobiłem już parę programów w Basicu i 2 gry wykorzystujące procedury napisane kodem maszynowym (1 niedokończona). Jednak kod maszynowy sprawia mi dużo problemów a Basic jak wiadomo jest niezadawalający. W nadzieji chciałem spróbować Quick Assemblera, że w miarę swobodnie będę mógł napisać jakiś najprostrzy program. Jednak okazało się innaczej.
Chciałem napisać program który zmienia tryb graficzny na 0(gr.0), ale wynikiem tego programu nie powinien być chyba kompletnie czarny ekran. Więc zwracam się do Was z prośbą czy moglibyście przeanalizować kod i powiedzieć co źle zrobiłem albo czy popełniłem jeden z grzechów głównych i to jest cud że komputer jeszcze działa? Byłbym wdzięczny za jakąkolwiek pomoc.
list equ %00000101 ; Żeby podczas kompilacji był listing tylko errorów
mem_copy equ %00010000 ; i żeby kod był umieszczany do pamięci komputera
opt list+mem_copy
org $9000 ;####program dla CPU#####
lda $00 ;
brk ;żeby sprawdzić stan akumulatora*
sta 560 ; Poke 560,00
lda $9A ;
brk ;żeby sprawdzić stan akumulatora*
sta 561 ;Poke 561,$9A
joystic lda 644 ;Pobieram stan przycisku Joy'a
cmp 0 ;Sprawdzam czy wciśnięty
bne joystic ;Jeśli nie to skok do joystick
rts ;powrót do QA (o ile dobrze wiem)
org $9A00 ;####program dla ANTIC####
dta b($70) ;
dta b($70) ;3x8 pustych linii
dta b($70) ;
dta b($42) ;linia w trybie 0(gr.0) i określenie nowego adresu obrazu
dta b($00) ;LSB adresu
dta b($90) ;MSB adresu
dta c(' 11 razy znak o wartości 2 w ASCII ') ;11 linijek w trybie 0
dta b($41) ;skok i synchronizacja
dta b($00) ;LBS adresu programu Antica
dta b($9A) ;MBS -||-
end
*Wartości wogóle się nie zgadzają, byłbym też wdzięczny za wytłumaczenie tego zjawiska.
Mam nadzieję że napisałem kod w dość przejrzysty sposób