问题标签 [c64]

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 投票
1 回答
235 浏览

assembly - 这是C64 6502总成的什么方言?

这是 6502 Assembly 的什么方言,我如何编译它而不将其翻译成不同的 6502 方言?

我目前使用 CC65 作为我的 6502 汇编器。
我编译我的代码如下:

但这意味着我必须对上面的代码进行编辑,所以它现在看起来像这样。

这是我的c64-asm.cfg

0 投票
1 回答
82 浏览

assembly - PET CBM C64 MOS6510 组装 在屏幕上打印出带有计算屏幕地址的字母?

我是 C64 汇编程序编程的新手,我对保存和加载内存区域的过程有疑问。我担心以下问题:

将字母 A 放在屏幕的左上角

有了这个,我可以使用 x 寄存器作为计数器,并且可以比较我使用循环的频率。

但现在我有一个 16 位计算(屏幕起始地址加上 xxx)并将结果存储在一个内存地址中,如 4000 美元和 4001 美元。如何使用这个值作为新的屏幕地址,在屏幕的计算区域上打印出字母 a?

0 投票
1 回答
71 浏览

memory - 在 C64 上寻找类似汇编器的旧机器人语言

在与朋友的讨论中,我最近想起了 Commodore C64 时代的一个有趣的想法。不幸的是,谷歌搜索没有带来任何结果,这可能是因为我什至不知道谷歌搜索什么。所以,我想在这里寻求帮助......

简而言之,我记得曾经有一种非常简单的、几乎类似于汇编程序的编程语言,专门用于通过相互覆盖而在计算机内存中相互竞争的程序。就个人而言,我在 C64 上玩过它,但它也可能被移植到其他系统上。它可能被称为“程序战”或类似的东西,有一段时间有大型社区举办比赛和锦标赛。

有没有人足够大,知道我在说什么,并且可以帮助我提供一些信息?:)

提前致谢。

0 投票
1 回答
170 浏览

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

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

我在 youtube 上看到它正在完成,但它发生得太快了,我跟不上!

0 投票
2 回答
96 浏览

c64 - C64 字符大小

我刚开始在复古游戏区开发 c64。

我想知道为什么在 c65 上一个字符是 8 个字节,但是像现代 Web 开发这样的其他任何东西,比如在 php 中,一个字符只有 1 个字节

这与 c64 显示器的工作方式有关吗?它需要所有数据才能在屏幕上生成角色吗?

0 投票
2 回答
223 浏览

assembly - C64汇编存储内存地址并增加它

我现在学习 C64 的 KickAss 汇编程序,但我以前从未学习过任何 asm 或 8 位计算。我想打印大的 ascii 横幅(数字)。我想将“$ 0400”地址存储在内存中,当我增加行号时,我需要将其增加 36(因为屏幕是 40 字符宽度,所以我想跳到下一行),但我的问题是这是一个 2 字节的数字,所以我不能只添加它。这个演示工作“很好”,除了线增加,因为我不知道。

所以我需要的是:

  1. 如何在内存中存储 2 字节的内存地址?
  2. 我怎样才能增加内存地址并存储回来(2字节)?
  3. 如何将值存储到新地址(2 字节和索引寄存器只是一个)?

谢谢很多人!

0 投票
1 回答
81 浏览

6502 - *等待*按键并获取其矩阵或PETSCII代码的简单方法?

我找到了一些与获取按键/线路相关的 BASIC 和 KERNAL 函数和内存地址,但是我怎样才能简单地等待按键并获取其代码?我想暂停执行,一旦按下一个键就恢复。我不希望他们在执行期间排队。

0 投票
1 回答
67 浏览

assembly - 6502 通过 TXA 和 TAX 使用 CMP BNE 循环

刚刚学习了存储数据的整个过程,我是低级编程的新手,所以请温柔。但是为什么这个简单的代码不起作用,到目前为止,它只是用我的简单预设测试数字#08 填充 1000 美元地址的 00 字节,我想通过这样的循环,我会在调试器中看到前 8 个字节,每个字节都包含 08在 1000 美元的地址,但不。我认为使用 TXA(将 x 转移到累加器)和 TAX(将累加器转移到 X)会这样做,因为 CMP 和 BNE 只能从累加器中工作,但不会。非常令人沮丧。任何帮助都会得到巨大的感激和微笑......

0 投票
1 回答
142 浏览

assembly - 6510/6502 C64 键盘输入打印到屏幕并存储在内存中问题

通过查看我的 c64 参考书的屏幕显示部分,我在下面输入的字符可以正确打印到屏幕上,但是当稍后从记忆中再次调用时,它们不是。:(

基本上,如果输入“A”,我会得到黑色铁锹符号,“S”作为心形符号返回,“X”作为梅花符号返回。我必须声明当我以用户身份输入时不会发生这种情况,并看到我的文本打印到屏幕上——效果很好。只有当我以用户身份按 RETURN 时才会出错,并且我认为存储在 $1000,x 的字符(每次按键后都会发生 inx)在分配区域的下方显示为符号,然后是 @ 符号组成我能看到的其余部分是其余字节中的空格。

请原谅凌乱/过度新设计的代码,我学习汇编不到一周左右 - 只有 BASIC 作为基础。

我运行了调试器,当在程序中输入“ASX”时,通过调试器的内存位置看起来像这样......

41 53 58 00 00 00 00 00 00 00 00 00 00 00 00 00 ♠♥♣@@@@@@@@@@@@@

0 投票
2 回答
146 浏览

6502 - 6510 使用 CBM Studio 组装 - 带有分支错误的页面边界

当我运行我的程序时,我遇到了错误页面边界。在适用于 Windows 10 的 CBM prg studio 应用程序的任何帮助中,它都没有解释我如何增加这个边界,或者我需要做什么来避免这些错误。

它发生在基于标签 E1cycle 和 E2cycle 内的第 110 行和第 127 行的同一条指令上......

此外,正如您在上面看到的,我收到了这些奇怪的(200 字节)和(-275 字节)无效的分支错误——这是代码部分......

我需要用非常简单的术语向我解释这一点,因为我仍在学习,并且有时发现行话有点难以理解。谢谢!