【问题标题】:Applesoft Basic, how to hide the flashing cursor?Applesoft Basic,如何隐藏闪烁的光标?
【发布时间】:2018-08-11 02:47:53
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: basic apple-ii


    【解决方案1】:

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

    我可以使用 WAIT 命令隐藏光标,然后使用 GET 抓取下一个字符。

    WAIT 49152, 128
    GET I$
    

    更多示例:Applesoft Basic Examples

    【讨论】:

      【解决方案2】:

      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 的第 5 页或Apple IIe Technical Reference Manual 的第 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 了解此类问题。

      【讨论】:

        【解决方案3】:

        原答案:

        在 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

        【讨论】:

        • 是的,我没有使用 80-col,这似乎无法使用 40-column。
        • 是的,我发现模拟器也不支持它。 github.com/AppleWin/AppleWin/issues/135
        • 所以看起来模拟器不支持 40 列中的 POKE 2043 技巧。但我很好奇 VisiCalc 是如何做到这一点的,当我将他们的 rom 加载到 AppleWin 中时,没有闪烁的光标?
        • 我发现了一些关于 Visicalc 的详细信息:rmf.vc/implementingvisicalc 但没有关于隐藏光标的信息。
        • 原来我investigated this years ago 并且该功能是Apple IIc 80 列固件特有的。它不适用于原始或增强的 Apple IIe。
        猜你喜欢
        • 2014-09-30
        • 1970-01-01
        • 2011-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-01
        • 2018-01-26
        相关资源
        最近更新 更多