Bitmap memory / Screen memory / Color RAM
Bitmap memory / Screen memory / Color RAM
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
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
http://260ste.atari.org
Re: Bitmap memory / Screen memory / Color RAM
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
Re: Bitmap memory / Screen memory / Color RAM
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
http://260ste.atari.org
Re: Bitmap memory / Screen memory / Color RAM
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org
Re: Bitmap memory / Screen memory / Color RAM
@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.
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
Re: Bitmap memory / Screen memory / Color RAM
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ć.
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
http://260ste.atari.org
Re: Bitmap memory / Screen memory / Color RAM
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
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
- 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
http://260ste.atari.org
Re: Bitmap memory / Screen memory / Color RAM
znalazłem błąd.
"Beep" działa na 6581 a na 8580 jest cisza. Aktualny kod to:
Macie jakieś wskazówki co do 8580 ?
"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
}
C= C64 Breadbin, C= 1541, C= 1802; Atari 8/16/32/64bit;
http://260ste.atari.org
http://260ste.atari.org
Re: Bitmap memory / Screen memory / Color RAM
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
http://260ste.atari.org
Re: Bitmap memory / Screen memory / Color RAM
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
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
Re: Bitmap memory / Screen memory / Color RAM
w excelu
potrzebowałem coś na szybko, co pokaże możliwości kolorystyczne HiResa.
da się tak zrobić, z tym że ta moja jest dla mnie łatwiejsza do zmierzenia no i dokładniejsza.carrion pisze: ↑16 kwie 2020, 19:49uruchomił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...
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.
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
http://260ste.atari.org