标签: c64

为什么 53280 $D020 的高位总是被置位 (c64)

至少运行 VICE 2.4:

PRINT PEEK(53280)
 254

POKE 53280,14

PRINT PEEK(53280)
 254
Run Code Online (Sandbox Code Playgroud)

很明显,只使用了位#0-#3,并且使用 获得了“正确”值AND 15,但是为什么6510 将高位设置为1

c64 commodore

4
推荐指数
1
解决办法
259
查看次数

在 6502 汇编器中编写子程序的最佳方法?

我是汇编程序新手,所以这是一个简单的问题:

我的自定义子例程更改XYA寄存器。他们操纵这些来产生期望的结果。在例程启动时将这些值推入堆栈并在之前恢复它们是一个好主意吗RTS

我的意思是,这样我就可以编写可以从任何地方调用的例程,而不会弄乱“状态”或影响其他例程。但是这样使用栈可以吗?或者有更好的方法来做到这一点吗?

assembly c64 6502 calling-convention

4
推荐指数
1
解决办法
981
查看次数

敌人的子弹针对C64上的玩家

我在没有找到答案的情况下扫描互联网和旧的C64书籍,所以最后我不得不在这里发布.我喜欢C64编码的美好时光,虽然我目前还没有在这个平台上编写游戏,但我想知道当时是如何克服某些硬件限制的.

在所有现代游戏编程书籍和教程中,找到向玩家发射敌人子弹的正确方向的方法是使用向量数学与浮点数,或多或少像这个伪代码:

bullet_velocity = (player.position - bullet.position).normalize();
Run Code Online (Sandbox Code Playgroud)

现在,考虑到C64的限制,我在源代码中大量使用正弦表来提高速度,也许我分心了,但是当我从C64程序员那里阅读旧的C64书籍或评论程序时,我从未见过关于矢量数学的一个词,我想知道如何在同一时间获得同样的目标.

请回答,我有这样的一千个疑问,但回答这个问题也许我可以发现自己对其余的回应!:-)

编辑:只是一个注释:用针对玩家的子弹的C64游戏的例子是Silkworm和Cyber​​noid.

assembly artificial-intelligence c64 6502 6510

3
推荐指数
1
解决办法
404
查看次数

如何将 SID 文件包含到 C64 上的 cc65 程序中?

我想在 cc65 程序中包含和播放 .sid 文件(C64 芯片音乐的音乐)。通常 sid 文件包含一个起价为 1000 美元的播放程序,我如何将其链接到我的 cc65 程序?目前我使用以下命令用 cc65 编译我的代码:

cl65 -O -o C64test.prg -t c64 C64test.c
Run Code Online (Sandbox Code Playgroud)

c audio c64

3
推荐指数
1
解决办法
739
查看次数

ca65:Include Guard生成“错误:预期标识符”

为了学习如何使用ca65汇编程序,我一直在努力使include guards起作用。谷歌搜索和阅读《ca65用户指南》无济于事。这是产生错误的最小示例。

$ ls -l
total 16
-rw-r--r--  1 me  staff  60 Oct 22 19:40 65.inc
-rw-r--r--  1 me  staff  55 Oct 22 20:01 test.s
$
$ cat 65.inc
.ifndef _65_INC_
.define _65_INC_

.define NUMBER 1

.endif
$
$ cat test.s
.include "65.inc"
.include "65.inc"

    lda #NUMBER
    rts
$
$ ca65 test.s
65.inc(1): Error: Identifier expected
65.inc(2): Error: Identifier expected
65.inc(4): Error: Identifier expected
65.inc(4): Note: Macro was defined here
$
$ ls -l
total 16 …
Run Code Online (Sandbox Code Playgroud)

assembly c64 6502 ca65

3
推荐指数
1
解决办法
73
查看次数

Commodore C64仿真器?

我有点怀旧,想要像我10岁那样在C64上玩,但是我没有一个人可以用.

有模拟器吗?

c64 emulation

2
推荐指数
2
解决办法
1220
查看次数

C64上实时的DSP类型效果:怎么可能?

我刚看到这个,这是我见过的最神奇的事情之一:

http://www.youtube.com/watch?v=MDrqBYkco-Y

我甚至无法理解这一点.这里发生了什么?

signal-processing c64

2
推荐指数
1
解决办法
656
查看次数

精灵运动的正弦函数的替代方案

致力于一些 C64 介绍性想法。我使用下面的代码和正弦表根据预先生成的正弦表移动精灵。

子程序

        ldx counter
        cmx #100
        jmp +

        ldx #00
        stx counter

+       lda sprite_sinus,x

        inc counter

        rts
Run Code Online (Sandbox Code Playgroud)

窦表

sprite_sinus   
    !by 25,23,21,20,18,17,15,14,12,11,10,8,7,6,5,4
    !by 3,2,2,1,1,0,0,0,0,0,0,0,0,0,1,1
    !by 2,3,4,5,6,7,8,9,10,12,13,14,16,17,19,21
    !by 22,24,25,27,28,30,32,33,35,36,37,39,40,41,42,43
    !by 44,45,46,47,48,48,49,49,49,49,49,49,49,49,49,48
    !by 48,47,47,46,45,44,43,42,41,39,38,37,35,34,32,31
    !by 29,28,26,25
Run Code Online (Sandbox Code Playgroud)

但我需要一些不同的东西。在循环路径中移动精灵的 x 和 y 方向。我还可以使用哪些其他功能?

assembly c64 6502 6510

2
推荐指数
1
解决办法
1026
查看次数

如何从 C64 BASIC 访问汇编编辑器

我想知道如何进入 Commodore 64 上的程序集编辑器。您输入命令吗?

我在 YouTube 上看到过这种情况,但发生得太快了,我跟不上!

assembly basic editor c64

1
推荐指数
1
解决办法
430
查看次数

如何在c64的basic中以编程方式输入命令?

我想在commodore 64中编写一个非常简单的基本程序,输入其他基本命令。

这是一个例子:
10 print"list"+chr$(13)

这会打印列表但不会按 Enter 键。

我的期望是得到 list 命令的结果。

我怎样才能实现这个目标?

basic c64 commodore

1
推荐指数
1
解决办法
741
查看次数