我目前正在尝试学习 commodore 64 BASIC,但我的睡眠功能出现错误

问题描述 投票:0回答:1

我最近一直在学习 commodore 64 BASIC,我正在尝试创建一个文字冒险游戏,但我遇到了一个关于我使用的所有睡眠函数的错误。我的代码是:

20 SLEEP(1000)
30 PRINT CLS
40 INPUT "START SURVEY?" ANSWER$
50 IF ANSWER$ == "YES"
60 PRINT CLS
70 PRINT "YOU BEGIN THE SURVER"
80 SLEEP(1000)
90 ELSE
100 SLEEP(1000)
110 PRINT CLS
120 PRINT "COME BACK ANOTHER TIME"
130 SLEEP(1000)
140 PRINT CLS
150 GOTO 10

错误是

ARRAY AT LINE 20

关于如何解决这个问题的任何想法?

text emulation basic smallbasic commodore
1个回答
0
投票

如果你的 C64 没有大于等于 7.0 的 BASIC 版本,

SLEEP
不是 C64 指令

执行代码时,解释器将 SLEEP 识别为无维数组,因为您使用了 SLEEP() 并因此返回错误。如果声明存在,你必须使用:

10 SLEEP 60

如果

SLEEP
语句不存在,您应该编写一些子例程以使用
GOSUB
语句进行延迟调用。

C64 说明书

看手册的附录我看到有一个

WAIT
声明,但是要使用这样的声明,你应该找到一些由 C64 每个时钟更新的内存位置(应该有,但我不记得它是哪个)。

我还在 Stackoverflow 上找到了与 VIC20/C64 延迟相关的答案。这可能是一个很好的解决方案:How to wait x seconds in 6502 basic

© www.soinside.com 2019 - 2024. All rights reserved.