Bitmap memory / Screen memory / Color RAM

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
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Bitmap memory / Screen memory / Color RAM

#1 Post autor: Cyprian »

Hej,

w ramach nauki programowania C64 przetestowałem kod viewer_hires.a ze stony https://github.com/agnesh/C64tools. Dostosowałem go do KickAssemblera no i działa ok - pokazuje kolorowy obrazek w HiRes.
Okazało się jednak że mam problem ze zrozumieniem/rozróżnieniem terminów - Bitmap memory / Screen memory / Color RAM

Bitmap memory - adres $D018. Rozumiem że w przypadku HiRes jest to zwykła bitmapa w rozdzielczości 320x200 jeden bit per pixel, organizacja bajtów w formacie C64.

Color RAM - pamięć SRAM pod adresem $D800, z definicją kolorów per ekran znakowy 40x25

Screen memory - adres $D018. Viewer_hires.a używa tego do definicji kolorów dla bitmapy HiRes. Co to jest? Czemu kolory są definiowane tutaj a nie w Color RAM?

Dzięki
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#2 Post autor: carrion »

W hiresie d800 nie jest używane tylko screen ram właśnie ktory w tym trybie zachowuje sie tak samo jak d800. Reszte rozumiesz dobrze.
c64portal.pl, retronavigator.com

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#3 Post autor: Cyprian »

czyli Screen ram i Color ram są używane zamiennie? Jeśli tak to w jakich trybach?
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#4 Post autor: Cyprian »

Cyprian pisze:
13 kwie 2020, 12:46
Jeśli tak to w jakich trybach?
ok chyba znalazłem:
http://sta.c64.org/cbm64disp.html
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#5 Post autor: carrion »

@Cyprian
Zgaduję że to ty piszesz też na AOL? Jeśli tak to chętnie bym spojrzał na twój program którym testujesz prędkość CPU.
Nie do końca zrozumiałem po co w takim teście raz na ramkę musisz pograć screen ram.
c64portal.pl, retronavigator.com

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#6 Post autor: Cyprian »

carrion pisze:
14 kwie 2020, 10:12
@Cyprian
Zgaduję że to ty piszesz też na AOL? Jeśli tak to chętnie bym spojrzał na twój program którym testujesz prędkość CPU.
Tak to ja, nie ma za dużo moich imienników zajmujących się retro :)
Niedługo wrzucę kody źródłowe, muszę go tylko oczyścić.
carrion pisze:
14 kwie 2020, 10:12
Nie do końca zrozumiałem po co w takim teście raz na ramkę musisz pograć screen ram.
nie modyfikuję screen ram, chodziło mi o naświetlenie tego że w trybie graficznym "sprzęt" w każdej ramce odczytuje z ramu oprócz bitmapy również jeszcze dane screen ram, co może mieć wpływ na wydajność procesora.
W A8 wygląda to inaczej. Nie wszyscy mają świadomość jak działa w ogóle sprzęt, a tym bardziej "konkurencyjna" platforma.

Podsumowując, moim celem nie jest jakaś wojenka C= vs /|\ tylko czysta ciekawość dotycząca rozwiązań sprzętowych.
Myślę że niepotrzebnie na AOL wrzucane są takie sugestie.
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#7 Post autor: Cyprian »

Test w załączniku.
Rzuć okiem czy kod nie zawiera jakichś błędów a może czegoś brakuje?

Czas wykonania mierzę 'uchem' czyli w Audacity odległość pomiędzy pyknięciem na początku i pyknięciem na końcu testu
LZ4 Test_A8_C64.png
LZ4 Test_A8_C64.png (63.81 KiB) Przejrzano 3288 razy
Załączniki
LZ4 Test_A8_C64.zip
(34.68 KiB) Pobrany 113 razy
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#8 Post autor: Cyprian »

znalazłem błąd.

"Beep" działa na 6581 a na 8580 jest cisza. Aktualny kod to:

Kod: Zaznacz cały

.macro BeepON() {
	lda	#$0F
	sta	$D418 		// SID filter / volume
}

.macro BeepOFF() {
	lda	#$00
	sta	$D418 		// SID filter / volume
}
Macie jakieś wskazówki co do 8580 ?
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#9 Post autor: Cyprian »

poprawiłem beep, teraz działa też z SID 8580
Załączniki
LZ4 Test_A8_C64_v2.zip
(34.76 KiB) Pobrany 100 razy
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

Awatar użytkownika
carrion
Posty: 2329
Rejestracja: 27 lut 2009, 17:38
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#10 Post autor: carrion »

ale przyznaj się... tę mapę kolorów to ręcznie robiłeś? ;)

uruchomiłem i ... działa.
nie wiem czy twoja metoda pomiarowa jest OK. może lepiej zrobić tak że odpalić przerwanie rastra i zliczać ramki?
Wtedy dostaniesz konkretną liczbę 1/50 (jednych pięćdziesiątych) części sekundy.
Nie wiem czy na atari da się tak zrobić ale pewnie tak...

A sam test... no cóż jak procek w C64 jest wolniejszy to i efekt działania będzie wolniejszy.
Ale dobrze wiemy że nie tylko o procek chodzi...
ehem, sprajty... ehem mapa kolorów... ehem 256 zanków... ehem ;)
c64portal.pl, retronavigator.com

Awatar użytkownika
Cyprian
Posty: 94
Rejestracja: 06 kwie 2020, 10:43
Kontakt:

Re: Bitmap memory / Screen memory / Color RAM

#11 Post autor: Cyprian »

carrion pisze:
16 kwie 2020, 19:49
ale przyznaj się... tę mapę kolorów to ręcznie robiłeś? ;)
w excelu :)
potrzebowałem coś na szybko, co pokaże możliwości kolorystyczne HiResa.
carrion pisze:
16 kwie 2020, 19:49
uruchomiłem i ... działa.
nie wiem czy twoja metoda pomiarowa jest OK. może lepiej zrobić tak że odpalić przerwanie rastra i zliczać ramki?
Wtedy dostaniesz konkretną liczbę 1/50 (jednych pięćdziesiątych) części sekundy.
Nie wiem czy na atari da się tak zrobić ale pewnie tak...
da się tak zrobić, z tym że ta moja jest dla mnie łatwiejsza do zmierzenia no i dokładniejsza.
Jest to zwykłe granie sampla na SIDzie. Jaka jest ich górna częstotliwość grania? Jeśli 48KHz, to tutaj mamy dokładność 1/48000 sekundy.
carrion pisze:
16 kwie 2020, 19:49
A sam test... no cóż jak procek w C64 jest wolniejszy to i efekt działania będzie wolniejszy.
Ale dobrze wiemy że nie tylko o procek chodzi...
ehem, sprajty... ehem mapa kolorów... ehem 256 zanków... ehem ;)
nie no, wiadomix.
tak jak pisałem nie chodzi o jakieś wojenki, tylko czysto techniczne porównanie CPU versus RAM.
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org

ODPOWIEDZ