dziwne zachowanie timerów

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
Awatar użytkownika
Roody
Posty: 168
Rejestracja: 26 sie 2009, 18:14
Grupa: sabat

dziwne zachowanie timerów

#1 Post autor: Roody »

Mam taką zagwozdkę.
mój prg zajmuje prawie całą pamięć z pominięciem d000-e000 (nie wiem czy to ważne)
Korzysta z timerów do generowania liczb losowych.
Mam taki problem , że zachowuje się inaczej na różnych emu i na prawdziwym c64.
generalnie zauważyłem że na vice jest ok jak przed procedurą losujacą zrobię jsr $fddd. A żeby działało to na prawdziwym c64 musi być wpięty AR 7.3 (taki mam) i muszę usunać z kodu ten skok (jsr $fddd). taka sama konfiguracja jak na c64+AR odpala sie poprawnie na CCSWin.
Jak myślcie o co ho?! chciałbym uzyskać ten sam efekt przynajmniej na vice i real c64. jeżeli odpalam na realu konfigurację z vica wygląda to tak jakby timer przejął kontrole nad przerwaniami i wszystko przyśpiesza kilka razy.
Pomóżcie.

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

#2 Post autor: wegi »

Masz art skulla o używaniu timerów do cyklowania w ca-fan. Może ustawiasz timer w złym trybie albo może nie pamiętam, ale jakiś odczyt pojedynczego bajtu timera mógł go blokować do momentu odczytania drugiego jego bajtu...

Awatar użytkownika
Sebaloz/Lepsi.De
Posty: 3949
Rejestracja: 14 wrz 2008, 00:02

#3 Post autor: Sebaloz/Lepsi.De »

Nie wiem jak twoj kod poprawic, ale na forum csdb jest kilka sposobow.
http://csdb.dk/forums/?roomid=11&topici ... allposts=1

Skoro masz wolna pamiec $d000-$e000 to mozesz wygenerowac losowe liczby pod kickassemblerem i dolaczyc taka tabelke do programu.
__________________________
Socjopatyczna Legia Commodore

Awatar użytkownika
Roody
Posty: 168
Rejestracja: 26 sie 2009, 18:14
Grupa: sabat

#4 Post autor: Roody »

chyba strona ca-fan.pl nie działą. czy jest jakieś archiwum ? w którym numerze pamiętasz?

Awatar użytkownika
Roody
Posty: 168
Rejestracja: 26 sie 2009, 18:14
Grupa: sabat

#5 Post autor: Roody »

może rzeczywiście olanie timerów i inna proc. losująca to było by rozwiązanie

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#6 Post autor: Nitro »

Spróbuj Hoxsa, Vice nie jest idealny.

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#7 Post autor: skull »

Jeszcze musisz inicjować timer na początku, żeby zaczął zliczać:

lda #$11
sta $dc0e


wtedy załóż sobie też zasięg liczb do losowania

lda #$xx
sta $dc04

teraz możesz pobierać "losowe" wartości przez:

lda $dc04
Bo pecet to zwykły banan...

Awatar użytkownika
Roody
Posty: 168
Rejestracja: 26 sie 2009, 18:14
Grupa: sabat

#8 Post autor: Roody »

dzięki.

mam jeszcze jedno pytanie zadam je w tym temacie żeby nie zakładać nowego.
Czy znacie jakiś paker który bezboleśnie (czyli wypluje gotowy plik z proc. depakującą) spakuje plik o wielkości 250 bloków (0800-ffff) ?

Awatar użytkownika
Nitro
Posty: 1544
Rejestracja: 03 wrz 2008, 20:23
Grupa: Black Sun

#9 Post autor: Nitro »

Jak jednoplikówka, to Exomizer będzie najlepszy.

Awatar użytkownika
Roody
Posty: 168
Rejestracja: 26 sie 2009, 18:14
Grupa: sabat

#10 Post autor: Roody »

Nitro a pomógł byś jak poprawnie stworzyć linię komend lub plik .bat . nie mam doświadczenia w tym temacie. dzięki z góry!

Awatar użytkownika
Sebaloz/Lepsi.De
Posty: 3949
Rejestracja: 14 wrz 2008, 00:02

#11 Post autor: Sebaloz/Lepsi.De »

C:\c64\exomizer\dos\exomizer sfx $2800 piernik.prg -n -o piernik2.prg
__________________________
Socjopatyczna Legia Commodore

Awatar użytkownika
Roody
Posty: 168
Rejestracja: 26 sie 2009, 18:14
Grupa: sabat

#12 Post autor: Roody »

dzięki Seba zaraz obczaję

Awatar użytkownika
Roody
Posty: 168
Rejestracja: 26 sie 2009, 18:14
Grupa: sabat

#13 Post autor: Roody »

Prawie sie udało. mimo że po wylistowaniu jest odp. sys w basicu do uruchomienia, to i tak muszę go wklepać z łapy. run nie działa.
Druga sprawa to to.że po spakowaniu uszkadza frag. bitmapy która leży od e000 w górę.

Awatar użytkownika
Sebaloz/Lepsi.De
Posty: 3949
Rejestracja: 14 wrz 2008, 00:02

#14 Post autor: Sebaloz/Lepsi.De »

uzywasz ostatniej wersji 2.0.7?

Added feature to sfx-mode that complains if the data it too big to fit in the available memory of the selected target, suggested by Luca/FIRE
__________________________
Socjopatyczna Legia Commodore

Awatar użytkownika
Roody
Posty: 168
Rejestracja: 26 sie 2009, 18:14
Grupa: sabat

#15 Post autor: Roody »

sorry już wszystko ok.

Awatar użytkownika
wegi
Posty: 839
Rejestracja: 14 lip 2009, 01:17

#16 Post autor: wegi »

Dziwna nazwa wątku - timery zachowują się właściwie to programmer dziwnie je usiłuje oprogramowywać :-)

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#17 Post autor: skull »

przy zakładaniu wątku jeszcze nie było to takie pewne.
Bo pecet to zwykły banan...

Awatar użytkownika
Roody
Posty: 168
Rejestracja: 26 sie 2009, 18:14
Grupa: sabat

#18 Post autor: Roody »

Z tymi timerami to nie chodziło o ich odpowiednie zainicjowanie itp.
Po prostu na początku próbowałem załadować cały plik do ramu bez pakowania a nie wziąłem pod uwagę,że jak ładuje bez AR to komoda korzysta z kernala. a jak ladowałem z AR to niby było ok ale coś przestawiało w rejestrach odp. za timery i na niektórych emu proc. losująca zachowywała się dziwnie. sprawę załatwiło ładowanie spakowanego pliku . Na początku myślałem sobie - po co pakować i tak pewnie nikt nigdy oprócz mnie nie obejrzy tego na real c64......

Awatar użytkownika
kenji
Posty: 914
Rejestracja: 06 wrz 2009, 20:58
Grupa: Dream

#19 Post autor: kenji »

Jeśli za realny sprzęt uważasz też zestaw z 1541U, to jak najbardziej oglądnąłem Twoje demo na nim. Każde demo tak oglądam.
. : dream : .
Boom!

Awatar użytkownika
skull
Posty: 760
Rejestracja: 15 wrz 2008, 08:18
Grupa: samar

#20 Post autor: skull »

dokładnie - z ultimatem to już przyjemność, nie trzeba się tak rozstawiać z tymi zasilaczami - wystarczy przełożyć pendrive. Szybkość procesu już nie dużo większa od odpalenia w emu.
Bo pecet to zwykły banan...

ODPOWIEDZ