使用 Applesoft 的 Apple II、AppleDOS 3.3 上的语法错误 GET

Syntax Err GET on an Apple II, AppleDOS 3.3 using Applesoft

我正在使用 AppleWin 模拟器,设置为 Apple IIe,Apple DOS 3.3 和 Applesoft。我的目标是做一个简单的游戏。

这个简单的 GET 程序在 ] 提示符下运行良好(我不确定,但我认为它被称为监视器)。

10 GET V$
20 PRINT V$

它按预期打印按下的键

然后我使用 LOAD APPLESOFT 启动 Applesoft。我尝试编写与 ] 提示符下相同的简单程序。但是这次当我输入第一行 10 GET V$ 我得到输出 *** SYNTAX ERR.

我认为它不受支持,但在 ApplesoftII 基本编程参考手册中,他们列出了 get 保留关键字。

我可以更新到更高版本的 Applesoft,那么哪个版本的 Applebasic 会支持它? 我还可以使用另一种方法来获取按键,而无需用户随后按回车键。

Apple 上的 Applesoft][e(第一个完全支持小写字母的苹果版本)区分大小写,并且所有关键字都只能大写 -- 因此 get 不会匹配关键字 (或任何东西)并且会给你一个语法错误。

当然,如果您模拟的是原始 Apple ][,则根本没有小写字母,小写字母显示为闪烁的大写字母 -- 仍然无法匹配关键字。

在继续研究我的问题后,我找到了键盘缓冲区的内存位置。

键盘缓冲区是 -16384,重置该地址值的方法是访问 -16368

如果 -16384 中的值大于 128,则表示已按下某个键。 所以,我可以使用 PEEK -16384 来读取值。要获得 ASCII 码,您需要将该值减去 128。 示例代码:

KEY= PEEK(-16384)
IF KEY>=128 THEN PRINT KEY-128

要告诉系统您处理了按键并重置了值,您需要访问 -16368 中的值。通过使用 PEEK or POKE。 示例代码:

POKE -16368,0

Or can also be PEEKed
PRINT PEEK -16368

如果您遇到的错误是 *** SYNTAX ERR 而不是“?SYNTAX ERROR”,那么您使用的是 integer basic 而不是 applesoft basic。尝试先使用 FP

切换到 applesoft basic