0

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

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

10 GET V$
20 PRINT V$

它按预期打印按下的键

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

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

我可以升级到更高版本的 Applesoft,那么 Applebasic 的哪个版本会支持呢?我还可以使用另一种方法来获得按键,而用户之后无需按 Enter。

4

3 回答 3

0

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

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

于 2020-03-31T04:32:51.730 回答
0

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

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

如果 in 的值-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
于 2020-03-31T21:54:14.247 回答
0

如果您得到的错误是 *** SYNTAX ERR 而不是“?SYNTAX ERROR”,那么您使用的是整数基本而不是 applesoft 基本。尝试先使用 FP 切换到 applesoft basic

于 2021-11-17T13:08:23.987 回答