Avatar billede axell Nybegynder
29. november 2007 - 12:53 Der er 8 kommentarer og
1 løsning

commodore 64 og ramstørrelse?

Jeg har lige haft en lille uenighed med min programmeringslærer på mit studie.
Vi er begge enige om at 64 står for 64 kb ram.
Han siger at der ikke blev lavet programmer større end 64kb, for det vil ikke kunne lade sig gøre at putte mere end 64 kb ind i C64,hvilket er logisk. Men jeg kan huske og kan også se, da jeg har min gamle C64 endnu), at der var mange spil på disketter på over 100kb. Det vil min lærer ikke tro på.

Hvordan kan programmer på over 64kb være i hukommelsen, den loadede jo hele programmet på een gang??

mvh
Axell
Avatar billede mfalck Praktikant
29. november 2007 - 13:00 #1
er du sikker på at de ikke var til Commodore 128:

http://en.wikipedia.org/wiki/Commodore_128
Avatar billede ole_madsen Ekspert
29. november 2007 - 13:34 #2
Ydermere skal vi lige huske på det kære opstartsbillede: http://newsimg.bbc.co.uk/media/images/42684000/jpg/_42684673_c64screen.jpg

Kun 39KB til basicprogrammet.

Disketterne rummede 360KB DS (dobbelt sidet), hvilket kun er 170KB pr. side. Og visse spil var der kun plads til ét eller to af på en diskette, så noget kunne jo tyde på du har ret...

Men nu starter C64´eren jo op i basic, og mon ikke de fleste programmer var lavet i noget andet end basic - a´la "Maskinkode" som man snakkede om.

Jeg VED ikke hvorfor - men jeg kunne forestille mig at programmet kompileres til maskinkode, som det blev læst ind i hukommelsen.
Avatar billede ejvindh Ekspert
30. november 2007 - 02:45 #3
Nu er det jo noget tid siden.... Men var det ikke noget med at når man lavede en visning af indholdet på disken, så viste den ikke størrelsen i kb, men i blokke. Som jeg husker det, skulle der ca. 4 blokke til en kb. Kan det være dette du tager fejl af?

Eftersom C64 ikke arbejdede med virtuel hukommelse, er der ingen måde hvorpå den ville kunne arbejde med programmer på over 64kb.
Avatar billede ejvindh Ekspert
30. november 2007 - 02:48 #4
Det er rigtigt at basic-programmer kun kunne fylde 39kb -- men de fleste ting var jo kodet i maskinkode (da basicen var både langsom og primitiv), og her kunne man bare udmappe rommen, således at man kunne udnytte de fulde 64 kb.
Avatar billede ole_madsen Ekspert
30. november 2007 - 09:07 #5
Så vidt jeg husker så havde en disk netop 664 blokke tilgængelige pr. side = 166KB, som er meget lig de 170KB disken er bygget til - så det passer da stadig fint... uanset om vi kalder det KB eller blokke.

Jeg kommer til at tænke på SID chippen og grafik chippen. De var jo to selvstændige områder, og mange programmører har nok udnyttet at kunne programmere sprites og lyd direkte ud til disse enheders hukommelse. Dermed er der også mere lagerplads til selve programmet...
Avatar billede axell Nybegynder
30. november 2007 - 10:25 #6
Min talte om at koden kunne være pakket. Jeg undersøgte lidt på nettet, og faldt over noget med LZ komprimering. Synes dog det ville kræve en del komprimering forat få 150kb ned på 64kb. Der er muligt SID og grifik chippen har lidt hukommelse, men så meget kan det da heller ikke være, eller hva?

Men hvis man har brugt komprimering, hvorfor så ikke komprimerer dem allerede på disketten isteden for at gøre det i loading af programmet, undrer mig bare.

Håber der kommer nogen med kenskab til den gamle C64'er.
Avatar billede ejvindh Ekspert
30. november 2007 - 11:49 #7
SID og VIC-chipsene havde ikke egen hukommelse. Det var noget andet med VDC-chippen i C128, som sørgede for de 80 tegn pr. linie. Den havde egen hukommelse.

Komprimerings-teorien giver jeg heller ikke meget for. Komprimering er jo netop kun relevant imens koden er på lagermediet. Så hvis de nævnte filer var komprimeret, så ville de i udpakket stand blive endnu større end de 100kb.

Jeg hælder stadig til at du husker forkert, eller har blandet blokke og kb sammen.

En tredje mulighed er naturligvis at de nævnte spil har eksisteret som flere selvstændige filer. Et spil som Beach Head fyldte jo rigtig meget (muligvis flere disketter). Men det var jo fordi den havde forskellige baner, som man undervejs i spillet skulle skifte mellem.

Så foregik det ved at man først loadede én bane ind, spillede spillet. Når det var færdigt, loadede man en ny bane ind (imens man lukkede den gamle ud igen), og spillede videre.

På den måde kunne spillene jo komme til at fylde rigtig meget på disken -- samtidig med at der hele tiden max var 64kb i hukommelsen.
Avatar billede ejvindh Ekspert
30. november 2007 - 11:52 #8
Så alt efter hvad du definerer som "programmet" ville I i sidste tilfælde begge have ret (spillet som helhed fylder over 64 kb, men de enkelte filer gør ikke)
Avatar billede axell Nybegynder
09. januar 2008 - 23:44 #9
Jeg tror de fleste spil lader til at fylde omkring 40-50 kb. Det lader til at en block er 256 bytes, så når et spil fylder 180 blocks, passer det meget godt med at det vil kunne være indenfor 64kb hukommelse.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester