Qual é o endereço inicial preferido para um jogo em C64?

9

Ao escrever um jogo C64 no 6502 Assembler e carregar o jogo usando LOAD "Game",8,1, posso escolher o endereço em que o jogo é carregado. O endereço mais popular que vi é $c000seguido de perto $0810, mas também vi $1000e $2000usei muito.

Por que eu escolheria um sobre o outro? Entendo $0810porque é perto do $0801qual você deve escrever a SYSinstrução, mas todos os outros endereços parecem arbitrários.

Alguém pode lançar alguma luz sobre isso?

Michael Stum
fonte
Eu quase suspeito, apesar de seu contexto, que o SO poderia ser mais adequado, apenas porque a pergunta é tão específica! Eu posso estar errado.
Deceleratedcaviar
4
Bem, espero ver mais perguntas sobre C64 e outros hardwares antigos aqui!
sam hocevar
11
@ Daniel True, é mais uma questão de programação genérica. Eu gostaria de ver se há interesse no desenvolvimento de jogos vintage, eu estou apenas começando a ficar seriamente em C64 Jogo Dev (no meu todolist desde 25 anos :))
Michael Stum

Respostas:

7

$ 0810 é um bom começo para coisas asm. Próximo ao início do mem básico $ 0801 para que você possa colocar o sistema 2064 em $ 0801 ...

$ c000 - $ cfff está atrás da área básica de rom e é livre para que programas básicos "cutucem" as rotinas de asm frequentemente ...

$ 1000- $ 1fff (e $ 9000-9ffff) geralmente em programas asm contêm música porque essa área contém cópia de fontes de sombra e não pode ser usada para conjuntos de caracteres próprios, por isso é ideal para música ...

Apenas velho velhote c64
fonte
Obrigado, isso ajudou muito, eu li sobre o funcionamento do chip VIC-II e, de fato, US $ 1000 e US $ 9000 são problemáticos para os gráficos. $ c000 também parece sempre ser "RAM livre"
Michael Stum
2

O endereço $ 0801 é o local onde as listagens básicas normais começam. Se você faz uma lista após carregar algum programa, normalmente possui uma linha SYS (ex. 1989 SYS 2064). Portanto, o código em 2064 ($ 0810) é iniciado.

Essa citação foi retirada deste tópico: http://www.lemon64.com/forum/viewtopic.php?t=870&sid=a13a63a952d295ff70c67d93409bc392

Então, basicamente, você carrega nesse endereço, iniciando seu código com uma breve instrução BASIC para ir para onde seu código realmente estiver. (Ah, e acho que o primeiro $ 0801 existe um erro de digitação),

Jari Komppa
fonte