C64Power Forum
Hardware => Hardware => Wątek zaczęty 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?
-
przypomniala mi sie scena https://youtu.be/PuNOdgsjAuU?t=3m35s
-
http://dustlayer.com/c64-architecture/2013/4/13/ram-under-rom
-
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.
-
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
-
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 :)
-
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.
-
możesz poszerzyć temat ?
-
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.
-
https://blog.fynydd.com/crash-course-on-emulating-the-mos-6510-cpu/
-
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