我终于决定为 Apple //e 建立一个每月预算计划,进展顺利。现在我正在使用 AppleWin 模拟器。
有人知道如何在 Applesoft Basic 中隐藏光标吗?我正在考虑使用 Poke 隐藏它或将光标字符更改为空格?
我知道 VisiCalc 会这样做,当您加载程序时,在您开始编辑之前没有闪烁的光标。我想在我的程序中做同样的功能。
注意:我不想通过模拟器来做这件事,因为我最终会将它转移到 Apple 硬件上。
我在这里找到了解决方案。终端控制/隐藏光标。
我可以使用 WAIT 命令隐藏光标,然后使用 GET 获取下一个字符。
WAIT 49152, 128
GET I$
更多示例:Applesoft 基本示例
VisiCalc 是用汇编语言编写的,Applesoft BASIC 也是如此 - Applesoft 在闪烁光标时调用以获取密钥的固件例程也是如此。您可以在不闪烁光标的情况下从 Applesoft 或汇编语言中读取键盘,但您需要学习用于执行此操作的底层软开关。
Name Hex Decimal Negative
KBD $C000 49152 -16384
KBDSTRB $C010 49168 -16368
总之,您阅读 KBD 以获取最后按下的键的值。如果它是一个新键,则该值的第 8 位('strobe')将被设置 - 在这种情况下,您需要减去 128 才能获得键值。然后访问 KBDSTRB 以清除 KBD 的选通位。有关更多详细信息,请参阅Apple II 参考手册的第 5 页或Apple IIe 技术参考手册的第 12 页。
另一本谈论这个和许多其他事情的好书是The New Apple II User's Guide。
以下是如何使用这些软开关的简单示例:
10 KEY = PEEK (-16384) : REM READ KEY
20 IF KEY >= 128 THEN PRINT PEEK (-16368) : REM CLEAR STROBE
30 GOTO 10
最后,考虑访问Retrocomputing来解决这些问题。
原答案:
在 Apple IIe 上有一种未记录的方法来执行此操作
POKE 2043, ASC(" ") + 128
更多信息:https ://www.atarimagazines.com/compute/issue90/Feedback_Custom_Cursor.php
更新
正如@Nick Westgate 所说。这适用于 Apple IIc,不适用于 Apple IIe。