问题标签 [6510]
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.
java - 模拟器框架
有没有什么好的开源框架来开发计算机系统模拟器?我对用 Python 或 Java 编写的东西特别感兴趣,它们可以减少为 8 位处理器(例如 6502、6510 等)开发模拟器所涉及的工作量。
assembly - 比较击键 - 装配 CCS64
我想比较汇编中的击键(CCS64)。如果我连续输入相同的键,我想做一些事情例如:A A= 这样做
但是如果我输入这个:A B=做其他事情
建议?
c64 - 如何在 Commodore 64 中禁用屏幕?
我知道这个问题是非常特殊的问题,但我知道这里有一些 c64 代码大师。所以,这是我的问题。
当我尝试使用 $d011 技巧禁用屏幕时,上/下边框也会打开。我想在不打开上/下边界的情况下做到这一点。是否可以?
assembly - CBM Program Studio 汇编器语法
我正在尝试学习 CBM Program Studio。但我无法让宏为我工作。没有宏,代码就可以了。但是当我添加宏部分时,它会在第 7 行给出“No Matching End Definition”。
任何的想法?
assembly - Stable raster on C64
Using 6510 assembly on the Commodore 64, I am trying to create a stable raster effect. Using the double IRQ principle I draw some raster lines on the screen. I pad with NOPs to match 63 cycles for every normal scanline, and to 23 cycles for every badline. I realise that there is a specific start line I need to set, in order to match my 8th iteration with a badline, but no matter on what line I put the first line or what combination of NOPs I use, I can't get the timing right. I want complete lines that are not "broken". Can anyone see what I am doing wrong? Code is in Kick Assembler format. And here is a screenshot:
assembly - 用于精灵运动的窦性功能的替代品
研究一些 C64 介绍的想法。我使用下面的代码和一个正弦表根据预先生成的正弦表移动精灵。
子程序
窦表
但我需要一些不同的东西。在循环路径中移动 x 和 y 方向的精灵。我还可以使用哪些其他功能?
assembly - 使用 xa65 汇编器创建 Commodore 64 .prg
我正在尝试学习 6510 汇编,因为我正在运行 Debian xa65 是我想要使用的汇编程序。
到目前为止,我已经编写了一段代码,如下所示:
现在,第一个 .byte 部分应该在加载后“自动启动”程序。这是我从教程中找到的,据我所知,它只会运行 SYS 4096 使 CPU 开始执行地址为 $1000 的代码
其余代码应该只是开始闪烁 C64 的外边界和内边界并永远重复。
组装时,我只需运行以下命令:
然后我尝试将 test.prg 加载到 VICE 中进行测试。使用 LOAD "TEST.PRG",8,1: 并且即使文件加载它也不会自动启动,如果我键入 RUN: 并且如果我键入 LIST: 则不会发生任何事情:-唯一的结果是著名的 READY。光标像往常一样愉快地闪烁。
我试图删除自动启动的东西,只组装从 *=$1000 开始的代码,但我得到了相同的结果。尝试从 SYS 4096 开始也会导致 READY,仅此而已。
我确定我没有正确使用 xa 汇编程序,但我不知道如何为 C64 创建合适的 PRG 文件以供使用。我究竟做错了什么?
assembly - 在 Commodore 64 上动态更新磁贴数据的更好方法
我计划在我的新 C64 项目中使用多色字符模式下的软件精灵。我的想法是使用叠加“子弹”精灵数据来平铺数据。
我想我可以在地址 'TILESET' 上拥有tileset 数据,在地址'SPRITE' 上拥有精灵数据。我可以将这两者结合起来准备一个具有动态计算背景的子弹字符并存储在地址“SUPERIMPOSED”中
我写了以下代码和循环计数来检查它是否可行。我认为不是。循环消耗了 219 个周期。近四个光栅线。而且我没有包括在此循环之前所需的其他必要计算。就像计算目标地址一样。
当我想在屏幕上显示 16 个项目符号时,需要 64 个栅格或 8 个字符行。于是我开始怀疑。这是正确的方法吗?或者有没有其他更优化的方式来做同样的工作?
我正在考虑在背景中有重复模式。这样我就可以使用相同的子弹图块而无需重新计算。
assembly - 在 C64 上瞄准玩家的敌人子弹
我正在扫描互联网和旧的 C64 书籍以寻找这个问题,但没有找到答案,所以最后我不得不把它贴在这里。我喜欢 C64 编码的美好时光,虽然我目前没有在这个平台上编写游戏,但我想知道当时是如何克服一些硬件限制的。
在所有现代游戏编程书籍和教程中,找到向玩家发射敌方子弹的正确方向的方法是使用带有浮点数的矢量数学,或多或少类似于以下伪代码:
现在,考虑到 C64 的限制,我在源代码中看到大量使用正弦表来提高速度,也许我分心了,但是在阅读旧的 C64 书籍或 C64 程序员评论的程序时,我从未见过有关向量数学的词,我想知道当时如何获得相同的目标。
请回答,我有上千个这样的疑问,但回答这个问题也许我可以找到自己的答案!:-)
编辑:请注意:子弹针对玩家的 C64 游戏示例是 Silkworm 和 Cybernoid。
assembly - commodore 64 smooth scroller on line 1 - is jumping around on the screen if interrupt set on line #0
I have this horizontal smooth scrolling text on line 1 on the screen. the smooth scrolling effect is made using the $d016 hardware scrolling effect by iterating on the 7 lowest bits of $d016). The scroller runs on line 1 of the screen. I have set up two raster interrupts.
The "noScroller" interrupt is the part of the screen that should not be scrolled - which is whole screen except line 1.
The "scroller" is the interrupt that happens on line 1. I have set this interrupt to #50 even though I think it would make sense to set it to #0 since the scroll should only happen on line 1, but if I do set it to #0 then the scrolling text jumps around.
The "noscroller" interrupt is set to happen on line #66 - if I set it to #58 which seems to be the place where line 1 happens then the scrolling text starts to jump around strangely.
My problem is that I don't know what is wrong with my 2 interrupts. I would like to have the $d016 smooth scrolling only happen on line 1 but I have to make a larger area of the screen scroll than just line 1 otherwise the text will jump around. Here is my working code (with a too large scrolling screen area):