Was ist die bevorzugte Startadresse für ein C64-Spiel?

9

Wenn LOAD "Game",8,1ich ein C64-Spiel in 6502 Assembler schreibe und das Spiel mit lade , kann ich die Adresse auswählen, an die das Spiel geladen wird. Die beliebteste Adresse, die ich gesehen habe, ist $c000, dicht gefolgt von $0810, aber ich habe auch viel gesehen $1000und $2000verwendet.

Warum sollte ich einen über den anderen wählen? Ich verstehe, $0810weil es nahe ist, an $0801die Sie die SYSAnweisung schreiben müssen , aber die anderen Adressen scheinen alle willkürlich.

Kann jemand etwas Licht ins Dunkel bringen?

Michael Stum
quelle
Ich vermute fast, dass SO trotz seines Kontextes besser geeignet sein könnte, nur weil die Frage so spezifisch ist! Ich kann mich irren.
verzögert
4
Nun, ich hoffe auf jeden Fall, mehr Fragen und Antworten zu C64 und anderen Vintage-Hardware hier zu sehen!
Sam Hocevar
1
@ Daniel Richtig, es ist eher eine generische Programmierfrage. Ich würde gerne sehen, ob Interesse an der Entwicklung von Vintage-Spielen besteht. Ich fange gerade erst an, mich ernsthaft mit C64 Game Dev zu beschäftigen (auf meiner ToDolist seit 25 Jahren :))
Michael Stum

Antworten:

7

$ 0810 ist ein guter Anfang für Asm-Sachen. Nahe dem Start von Basic Mem $ 0801, damit Sie sys 2064 in $ 0801 einfügen können ...

$ c000 - $ cfff ist nach dem Basis-Rom-Bereich und kostenlos, so dass Basisprogramme dort oft Asm-Subroutinen "stecken" ...

$ 1000- $ 1fff (und $ 9000-9ffff) enthalten normalerweise in asm-Programmen Musik, da dieser Bereich eine Schattenkopie von Schriftarten enthält und nicht für eigene Zeichensätze verwendet werden kann. Daher ist er ideal für Musik ...

Nur alter C64-Geezer
quelle
Vielen Dank, das hat mir sehr geholfen. Ich habe nachgelesen, wie der VIC-II-Chip funktioniert, und tatsächlich sind 1000 und 9000 US-Dollar für Grafiken problematisch. $ c000 scheint auch immer "freier RAM" zu sein
Michael Stum
2

Die $ 0801-Adresse ist der Ort, an dem normale Basic-Listings beginnen. Wenn Sie nach dem Laden eines Programms eine Liste erstellen, haben Sie normalerweise eine SYS-Zeile (z. B. 1989 SYS 2064). Der Code bei 2064 ($ 0810) wird also gestartet.

Dieses Zitat stammt aus diesem Thread: http://www.lemon64.com/forum/viewtopic.php?t=870&sid=a13a63a952d295ff70c67d93409bc392

Im Grunde genommen laden Sie an diese Adresse und beginnen Ihren Code mit einer kurzen BASIC-Anweisung, um dorthin zu springen, wo sich Ihr Code tatsächlich befindet. (Oh, und ich denke, die ersten $ 0801 gibt es einen Tippfehler),

Jari Komppa
quelle