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。
我在这里找到了解决方案。 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 以解决此类问题。
我终于决定为 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。
我在这里找到了解决方案。 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 以解决此类问题。