为什么 C64 Basic 的第 6 行会出现意外字符?

Why is there an unexpected character on line 6 in C64 Basic?

提问人:kai 提问时间:10/1/2023 更新时间:10/2/2023 访问量:47

问:

PRG Studio 表示第 6 行有一个意想不到的字符。但是,我不明白为什么。我正在为 c64 编程。

1 rem setup
3 holding = "nothing"
6 playing_game = true
10 rem intro
20 print "it is dark. you have hiked miles to get here."
30 gosub 10000 rem wait
40 print "you have come to explore the castle of chadon hill."
50 gosub 10000 rem wait
60 print "it is said to have many traps. it is abandoned."
70 gosub 10000 rem wait
80 print "nobody has ever came back out..."
90 gosub 10000 rem wait
10000 rem wait
10010 waitcount = 0
10020 while waitcount < 50: waitcount = waitcount + 1: next waitcount
10030 return

我试图将“”更改为“”,但这不起作用,我尝试将 true 更改为“true”。那什么也没做。

基本 C64 准将

评论

3赞 shawnt00 10/1/2023
可能是下划线。我也怀疑你有 true 和 false 作为布尔值。
0赞 some 11/9/2023
您知道这台机器只有 38911 字节的内存可用于 BASIC 吗?不是太字节、千兆字节或兆字节。只有 38 KB。BASIC解释器必须读取名称的每个字节才能在内存中找到变量?由于机器的内存和速度有限,BASIC解释器只使用变量名的前两个字符。 和是不同的,但和指的是内存中的相同位置。A$AA$AB$ABC$
0赞 kai 11/9/2023
@some 是的,我知道。
0赞 some 11/10/2023
仅当命令为大写时,才能识别命令。字符串变量的名称必须以 .没有 或 . 包含一个字符串,因此应以 结尾,例如 。使用 TI 变量获取运行时间(以秒为单位),而不是在等待中燃烧周期(这取决于机器的速度)。$truewhileholding$HO$

答:

2赞 Jeff Zeitlin 10/2/2023 #1

您的代码不会如您所愿:

  • C64 BASIC与大多数早期Microsoft派生的BASICS一样,使用数字(表示false)和(表示true)表示布尔值。0-1

  • 下划线不是允许的字符之一;这是您收到的错误消息的来源。_

  • 字符串变量需要字符串指示符, - 假定变量为数值;要使其成为字符串,请将其命名为 。我很惊讶您在第 3 行中没有收到类型不匹配错误。$holdingholding$

评论

0赞 some 11/9/2023
此外,虽然您可以编写最多 80 个字符的变量名称,但 BASIC 解释器仅使用前 2 个字符进行标识:变量 和 不同,但不是 和 。A$AA$AB$ABC$