C64Power Forum

Hardware => Hardware => Wątek zaczęty przez: Fishman w 03 Sierpnia 2016, 15:10

Tytuł: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: Fishman w 03 Sierpnia 2016, 15:10
Nie dość, że maszyna ma RAM nie za wiele, to jeszcze przetrzymuje w niej kopię BASICa i KERNALa, czyli łącznie ok 1/4 pamięci RAM zajmuje sam skopiowany 1:1 ROM.

Przy rozdzielaniu tych przestrzeni adresowych owszem, pojawia się pewien problem, bo 16-bitowa szyna adresowa pozwala na zaadresowanie tylko 64KB i trzeba by wprowadzić np. stronicowanie, ale taki sam mechanizm był już przecież stosowany np. w VIC-20, gdzie BASIC był ładowany do pamięci, przez co użytkownik miał dostęp do biednych 3,5KB RAM.

Czy "zmarnowanie" 1/4 pamięci RAM ma jakieś szczególne uzasadnienie?
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: Raf w 03 Sierpnia 2016, 15:20
przypomniala mi sie scena https://youtu.be/PuNOdgsjAuU?t=3m35s
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: bor@s w 03 Sierpnia 2016, 15:30
http://dustlayer.com/c64-architecture/2013/4/13/ram-under-rom
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: Fishman w 03 Sierpnia 2016, 15:35
http://dustlayer.com/c64-architecture/2013/4/13/ram-under-rom

Hm, czyli przy "poważniejszych" zastosowaniach, można sobie przełączać między ROM i RAM, a dla nieskomplikowanych progamów w BASICu mamy podstawową konfigurację. Sprytne.
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: Kisiel w 03 Sierpnia 2016, 17:12
przypomniala mi sie scena https://youtu.be/PuNOdgsjAuU?t=3m35s
Las o kurwa krzyży.
Ogólnie user nawet nie sprawdził ile ma ramu c64 w necie, więc genialność dedukcji nie została zakłócona.
Ja na tę okoliczność publikuje to https://www.youtube.com/watch?v=Epq7h15wiTs
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: Raf w 03 Sierpnia 2016, 18:13
http://dustlayer.com/c64-architecture/2013/4/13/ram-under-rom

Hm, czyli przy "poważniejszych" zastosowaniach, można sobie przełączać między ROM i RAM, a dla nieskomplikowanych progamów w BASICu mamy podstawową konfigurację. Sprytne.

jest to bardzo prymitywne MMU. Wypasione jest w C128.
Ale mechanizmu takiego w ogole nie ma dla vica 20, ponadto nie nastepuje tam kopiowanie do ramu - w vicu jet tylko 5kb ramu out of the box. Rom jest mapowany do przestrzeni adresowej.
Niemniej jednak wiedza ta jest ogolnodostepna, gdybys zadal pytanie pokroju "jak dziala wybieranie pamieci w C64" to pewnie odzew bylby inny :)
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: Fishman w 04 Sierpnia 2016, 13:55
Się czepiacie. Swoją drogą rzeczywiście mogłem poczytać, zamiast spojrzeć tylko na mapę pamięci i założyć, że wygląda to tak samo jak w mikrokontrolerze z rozdzieleniem pamięci programu i danych.
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: Kisiel w 04 Sierpnia 2016, 16:01
możesz poszerzyć temat ?
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: Raf w 04 Sierpnia 2016, 18:21
założyć, że wygląda to tak samo jak w mikrokontrolerze z rozdzieleniem pamięci programu i danych.
Nie rozumiem, ATMega na ten przyklad potrafi wykonywac kod tylko z wbudowanej pamieci flash a RAM sluzy jako pamiec robocza, w 6502 nie ma takiego podzialu - jest po prostu 64k przestrzeni adresowej.
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: rs2322 w 04 Sierpnia 2016, 19:39
https://blog.fynydd.com/crash-course-on-emulating-the-mos-6510-cpu/
Tytuł: Re: Dlaczego C64 przechowuje kopie ROM w RAM?
Wiadomość wysłana przez: doman w 15 Sierpnia 2016, 17:20
To ja się jeszcze przyczepię, że 64 kB RAM to nie jest mało, na pewno nie w 1982 r. Wtedy wciąż jeszcze wiele konstrukcji oferowało 16 kB, tyle też wynosiła podstawowa konfiguracja pierwszych IBM PC, najbardziej wypasiony Apple ][ miał ze 48 kB.
Z resztą Commodore wykorzystywało to intensywnie w kampanii marketingowej:
https://www.youtube.com/watch?v=t7ZA4gNtqnk
https://www.youtube.com/watch?v=wyiUH9NmX0U
https://www.youtube.com/watch?v=0N2QPm4SWAM
https://www.youtube.com/watch?v=utLEuyNqVLI