问题标签 [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.
random - 在 C64 Basic 中生成随机方向
我已经运行了 C64 用户手册第 5 章中的“More Bouncing Balls”基本程序,并在该章的最后一页添加了内容。代码如下:
为此在末尾添加了行,ɔ:
这些行与问题无关,但为了完整起见,我将它们包括在内。
我想为球的方向添加随机性chr$(81)
(当然,将 DX 和 DY 都设置为 1,会使它们都以垂直相反的方向“推动”球,ɔ:在两者之间,等于 45°。DX
DY
但是当尝试使用随机数时,我会得到真正奇怪的行为。我假设这个数字必须在 0 和 1 之间,所以尝试(INT(10*RND(1))+1)/10
了 ,并将第 40 行更改为设置DX
和DY
这个随机数。相反,我得到的是一些非常奇怪的行为。球会以可预测的角度快速移动,在右侧消失并在左侧重新出现,向下移动几行,然后完全消失,然后在屏幕顶部出现水平方向一个接一个地绘制不动的球,然后坠毁. 当设置DX
orDY
为整数,即 2 时,我仍然会得到一些奇怪的行为,例如球在一端消失并在另一端重新出现,在这种情况下,程序将在几秒钟后结束。
是什么导致了这种不稳定的行为?以及如何设置第 40 行中的参数以允许球在撞到墙上时向不同方向移动(有点像 Pong 中的)?
DX
注意 1:在第 80 行和第 100 行进行更改时DY
,我得到了一些有趣的抖动运动,但正如预期的那样,就好像在屏幕上绘制的球是一个不均匀的球体。
注 2:我知道通常不应在标题中包含标签,但不确定如果我将它们排除在外,这个问题是否会变得难以搜索。如果需要,请随意编辑标题;我很高兴接受教育。
basic - 即使使用“启用运行停止”戳也无法启用列表
好吧,我下载了一个旧的非英语文本冒险,当然,“为了专业性”已经禁用列表。即使在输入启用“运行停止/恢复”和启用“列表”的戳后,它也会不断地询问输入(在游戏中)。我什至尝试在开始屏幕上输入列表,但它认为模拟的“运行/停止-恢复”就像任何其他按钮一样。“按任意键”(仅用我们的语言......)。
与可下载的 .prg 链接:
http://retrospec.sgn.net/users/tomcat/yu/C64/MiscGames/Html/BezMilosti.php
PS:由于在 VICE 中拖动屏幕时会自动加载 .prg 格式,我什至制作了一个新的 .d64 磁盘,因此引发了臭名昭著的“正在加载。准备就绪”。状态。从那个地方我确实进入了戳。
PS 2:我已经在“lemon”的“场景”类别下发布了一个关于这个问题的主题和主题,这是专门针对 Commodore 的顶级网站:
*编辑(导入链接):
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):
assembly - 迭代字节并将它们作为 ascii 打印到屏幕上
所以我试图通过将 ascciASCIIcodes 存储在一个字节数组中来将 ASCII 打印到屏幕上,但它只会在屏幕上呈现很多垃圾。
assembly - 如何在 2 列中显示交替的文本行?
我有这部分代码,所有文本行都同时出现在屏幕上。现在我希望每一行从另一侧出现在屏幕上(即左起第一行,右起第二行等)。任何人都可以帮忙吗?
我在这里尝试了一些改变..
又在这里...
c64 - “?Out of data error in 60”在我的 C64 mini 上基本
我一直在将“Commodore 64 的六十个程序”(R. Erskine 等人)一书中的“决斗”编码到我的 C64 mini 中。我不断收到以下错误:“?60 中的数据错误”。我检查了代码中的拼写错误,但找不到任何错误。有没有其他人遇到过这个问题,你有解决办法吗?谢谢
我检查了代码中的拼写错误,但找不到任何错误。
第 5-60 行:
assembly - 修改 C64 PRG BASIC 标头?
我最近买了一个 c64 mini 并尝试使用 Turbo Macro Pro v1.2 编写一些程序集。
在编写 hello world 程序时,我发现了一个使用自动运行 BASIC 标头的教程。
我还尝试包含 PRINT CHR$(147) 以清除屏幕,但出现内存不足错误。
原始的 BASIC 标头是:
我将其修改为:
当我从 TMP 组装并运行然后键入 LIST 时,我得到了,
但是当运行时,我在第 10 行得到 OUT OF MEMORY ERROR。
难道我做错了什么?还是这条指令真的内存不足?
TMP 仍然在后台加载到内存中。我目前正在 VICE 中运行它。
assembly - ca65:包含防护生成“错误:预期标识符”
试图学习如何使用 ca65 汇编器,我一直在努力使包含警卫工作。谷歌搜索和阅读ca65 用户指南没有帮助。这是产生错误的最小示例。
如果我只在其中包含65.inc
一次,test.s
则可以毫无问题地组装,如下所示:
我错过了什么?
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
) 因为我只有一个精灵。
当我运行程序时,一切都被锁定了——这是意料之中的,因为程序以无限循环结束。但我在屏幕上的任何地方都看不到精灵:
我错过了什么?
unicode - 用于重新创建 C64 随机迷宫程序的 Unicode 字符
我想使用 Unicode 字符重新创建一个简单的 C64 随机迷宫。
https://www.youtube.com/watch?v=m9joBLOZVEo
我找不到好的线条字符,总是产生一致的、倾斜的线条。/ 和 \ 对我不起作用,更接近 "\u2571" 和 "\u2572"。