问题标签 [ca65]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
673 浏览

assembly - CA65:来自 16 位计算地址的“范围错误”

给定以下 CA65 代码:

我收到此错误消息:

有趣的是,以下版本按预期工作:

那么我如何让这个在 a 中工作.scope呢?

0 投票
1 回答
213 浏览

c - CC65:四行坏,两行好?

我正在尝试stdio.h在 Commodore 64 上使用 IO,但我正在使用以下程序:

问题是,如果我不加printf注释 2 ,那么它会按预期工作。如果我取消注释所有四个,那么它根本不起作用:如果我RUN这样做了,我只会看到在屏幕重置为仅显示READY.在空屏幕上之前闪烁的线条。

如果我有三个,那么它第一次不起作用(闪烁到空READY.屏幕),但如果我RUN再次使用它,那么它就起作用了......

我应该补充一点,我只在 VICE 上测试过这个,而不是真正的 C64。

0 投票
2 回答
1716 浏览

assembly - 在 C64 上移除侧边框的示例

我知道可以使用汇编删除 C64 中的顶部和底部边框,并且我已经找到了示例代码。但我找不到任何删除侧边框的示例代码(由 1001 Crew 发明。)

有人知道这方面的例子吗?

0 投票
1 回答
1868 浏览

assembly - 在 C64/Assembly 中更改没有颜色记忆的文本颜色

我有一个类似下面的代码,它工作正常。它清除屏幕,将一些颜色放入屏幕前 12 个字符的颜色记忆中,然后在屏幕上打印文本。

我想知道的是,如果有更简单的方法来更改 C64 程序集中的文本颜色,就像POKE 646,color在 BASIC 中一样?

编辑:我想我需要更清楚,我可以使用

但它不会影响 1024+ 中的汇编代码在屏幕上显示的文本。

是否有影响屏幕上所有字符的地址?

编辑:我想我知道答案,不。

0 投票
2 回答
256 浏览

assembly - 自动填充以将某些指令组装到预定地址中

我想用 CA65 组装一个需要自己运行的 6502 ROM,即没有其他可用的内核。我希望我的程序从$C000. 但这意味着我还需要$00 $C0$FFFC. 有没有办法让 CA65 在程序结尾和重置向量之间用零填充我的程序?

即我想做的是写类似

并得到一个.prg可以直接用作连续ROM区域的文件,从$C000一路到$FFFF.

我想我能做的一件事就是写

但这意味着每次我更改程序时都必须更新该数字。

0 投票
1 回答
363 浏览

assembly - CA65 段内存映射问题

我在 CA65 中工作一个 6502 项目,我无法理解一些指令。

我想要做的是定义一个段,就好像它在内存的另一部分一样,以便该代码的所有寻址都好像它在编译期间已经在该内存段中,但它将被加载主程序并且需要在加载后移动到位......对于这些旧机器来说这是一个非常基本的模型,但我无法让段命令中的 DEFINE 指令正常工作。

因此,我在 cfg 文件中创建了一个名为 MYMEM 的 MEMORY 定义,作为程序实际加载位置之外的位置,如下所示:

然后在我创建一个名为 MYMEMSEG 的段

然后,我尝试访问它声称它创建的 _ _MYMEMSEG_LOAD__ 或 _ _MYMEMSEG_RUN__ 或 _ _MYMEMSEG_SIZE__ 值,但它们都是未定义的......生成的 MAP 文件不包含任何带有 MYMEM 或 MYMEMSEG 的东西......那我是什么不明白这里?

0 投票
2 回答
789 浏览

assembly - 使用ca65编译一个简单的程序

我开始使用 Rodney Zaks 的书 Programming the 6502 来学习 6502 组装。其中有示例代码,我希望能够在我的 macbook 上运行它。我希望代码能够以书中呈现的形式运行,但我不确定。

我已经下载了 ca65 汇编程序,但遇到了一些麻烦。该命令ca65 3_1.as有效,但随后ld65 -o example 3_1.o(我认为这是正确的)导致错误:ld65: Error: Memory configuration missing

文件中的代码3_1.as如下。

谁能建议如何解决我的问题?

(作为一个小问题,目前我猜 100 美元和 200 美元实际上不包含任何值,因此即使程序可以运行,也不会进行实际添加,这是正确的吗?)

0 投票
1 回答
338 浏览

assembly - ca65:包含防护生成“错误:预期标识符”

试图学习如何使用 ca65 汇编器,我一直在努力使包含警卫工作。谷歌搜索和阅读ca65 用户指南没有帮助。这是产生错误的最小示例。

如果我只在其中包含65.inc 一次test.s则可以毫无问题地组装,如下所示:

我错过了什么?

0 投票
1 回答
129 浏览

assembly - 如何让代码在 Apple ii 上正确运行

我在 6502 程序集中编写了一小段代码(add.asm,如下所示),但在使其在 apple ii 模拟器上正确运行时遇到了一些问题。使用下面的配置文件,以及 ca65 和 ld65,我可以得到一个二进制文件来编译。

然后,使用 ciderpress,我可以将它放到磁盘映像中。但是,这是我的问题开始的地方。当我编辑文件的属性,使其成为二进制文件时,Ciderpress 将名为“辅助类型(十六进制)”的内容更改为 D818。我不确定这是为什么(将其更改为 6000,我说过 ram 在我的 ld65 配置文件中启动并不能解决我将要描述的问题)。

在 Ciderpress 中,我可以查看刚刚添加到磁盘映像中的文件添加。它说它从位置“D818”开始。但是,它不包括直到“STA ADR1”的每一行,这已经超过了程序的一半。当我在 appleii 模拟器上运行它时,程序的行为确认似乎只存在代码的后半部分。

谁能帮我理解发生了什么?

添加.asm:

苹果.cfg:

0 投票
2 回答
1054 浏览

assembly - C64 程序集渲染精灵

我使用ca65 汇编器ld65 链接器在 Commodore 64 的 6502 汇编器中编写了一个短程序。该程序应该在显示器中心附近的某处渲染一个实心方形精灵,但我没有看到任何正在渲染的东西。

这是我的组装:

这是我的链接器脚本,改编自ca65 推荐的链接器脚本,用于 c64 上的手写汇编程序。我所做的唯一更改是添加“GFXDATA”段,以便我可以将我的精灵存储在 address $2000

这是我用来编译和链接的命令:

这是编译后的mapfile的内容:

以及最终二进制文件的十六进制转储:

“GFXDATA”段是我的精灵。精灵是 64 字节的$FF,所以它应该看起来像一个实心正方形。该精灵数据位于 address $2000

“CODE”段从通常的 BASIC 开始位置开始,ca65 正在为我插入一个 BASIC 加载程序,所以我可以run在加载程序后输入。

我没有切换 VIC 的银行,所以屏幕仍然在它的默认地址范围 ( $0400-$07FF),这个范围的最后 8 个字节是我的精灵指针。我只使用精灵指针 0 ( $07f8) 因为我只有一个精灵。

当我运行程序时,一切都被锁定了——这是意料之中的,因为程序以无限循环结束。但我在屏幕上的任何地方都看不到精灵:

在 VICE 中运行的程序

我错过了什么?