Applesoft Basic,如何隐藏闪烁的光标?

Applesoft Basic, how to hide the flashing cursor?

我终于决定为 Apple //e 制定每月预算计划,进展顺利。现在我正在使用 AppleWin 模拟器。

有人知道如何在 Applesoft Basic 中隐藏光标吗?我正在考虑使用 Poke 隐藏它或将光标字符更改为空白 space?

我知道 VisiCalc 会这样做,当您加载程序时,在您开始编辑之前不会有闪烁的光标。我想在我的程序中做同样的功能。

注意:我不想通过模拟器来做,因为我最终会把它移到 Apple 硬件上。

原回答:

在 Apple IIe 上有一种未记录的方法可以做到这一点

POKE 2043, ASC(" ") + 128

更多信息:https://www.atarimagazines.com/compute/issue90/Feedback_Custom_Cursor.php

更新

正如@Nick Westgate 所说。这适用于 Apple IIc 而不适用于 Apple IIe。

更多信息:https://github.com/AppleWin/AppleWin/issues/135

我在这里找到了解决方案。 Terminal control/Hiding the cursor.

我能够使用 WAIT 命令隐藏光标,然后使用 GET 获取下一个字符。

WAIT 49152, 128
GET I$

此处有更多示例:Applesoft Basic Examples

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 Reference Manual or page 12 of the Apple IIe Technical Reference Manual.

的第 5 页

另一本谈论这个和许多其他事情的好书是 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 以解决此类问题。