Quelle est l'adresse de départ préférée pour un jeu C64?

9

Lors de l'écriture d'un jeu C64 dans 6502 Assembler et du chargement du jeu à l'aide LOAD "Game",8,1, je peux choisir l'adresse à laquelle le jeu est chargé. L'adresse la plus populaire que j'ai vue est $c000, suivie de près $0810, mais j'ai aussi vu $1000et $2000utilisé beaucoup.

Pourquoi devrais-je choisir l'un plutôt que l'autre? Je comprends $0810parce que c'est à proximité $0801duquel vous devez écrire l' SYSinstruction, mais les autres adresses semblent toutes arbitraires.

Quelqu'un peut-il éclairer cela?

Michael Stum
la source
Je soupçonne presque, malgré son contexte, que SO pourrait être mieux adapté, juste parce que la question est si spécifique! J'ai peut-être tort.
deceleratedcaviar
4
Eh bien, j'espère bien voir plus de C64 et d'autres questions et réponses sur le matériel vintage ici!
sam hocevar
1
@Daniel C'est vrai, c'est plus une question de programmation générique. J'aimerais voir s'il y a un intérêt pour le développement de jeux vintage, je commence tout juste à me lancer sérieusement dans C64 Game Dev (sur mon todolist depuis 25 ans :))
Michael Stum

Réponses:

7

0810 $ est un bon début pour les trucs asm. Près du début de la base mem 0801 $ afin que vous puissiez mettre sys 2064 dans 0801 $ ...

$ c000 - $ cfff est après la zone rom de base et gratuit, donc les programmes de base "piquent" les sous-routines asm souvent ...

$ 1000- $ 1fff (et $ 9000-9ffff) généralement dans les programmes asm contiennent de la musique car cette zone contient des clichés instantanés de polices et ne peut pas être utilisée pour ses propres jeux de caractères, donc c'est idéal pour la musique ...

Just old c64 geezer
la source
Merci, cela a beaucoup aidé, j'ai lu sur le fonctionnement de la puce VIC-II et en effet 1000 $ et 9000 $ sont problématiques pour les graphiques. $ c000 semble également être toujours "RAM gratuite"
Michael Stum
2

L'adresse 0801 $ est l'endroit où les listes de base normales commencent. Si vous faites une liste après avoir chargé un programme, vous avez normalement une ligne SYS (fex. 1989 SYS 2064) Donc le code à 2064 ($ 0810) est démarré.

Cette citation provient de ce fil: http://www.lemon64.com/forum/viewtopic.php?t=870&sid=a13a63a952d295ff70c67d93409bc392

Donc, fondamentalement, vous chargez à cette adresse, en commençant votre code avec une courte instruction BASIC pour accéder à l'emplacement de votre code. (Oh, et je pense que le premier 0801 $ il y a une faute de frappe),

Jari Komppa
la source